【问题标题】:sql alphanumeric with range start & end带有范围开始和结束的sql字母数字
【发布时间】:2017-03-03 02:21:45
【问题描述】:

我有一个问题,如何使用范围(开始和结束)搜索字母数字,如下所示:

如果我使用BETWEEN,结果将与末尾有字母的数字出现问题,在 pic/table = Input 2。

那么,我如何在键入 HSF3145858B 时获得 Id 6 结果

请指教

谢谢

【问题讨论】:

  • 你使用的是什么数据库(mysql、postgres、sql server...)?
  • 把你的数据库架构和一些示例数据代替图片附件
  • 我正在使用 sql server..
  • $tsql = "选择产品从 tbl_serial_range WHERE '$serialno' BETWEEN 开始和结束"; - 我当前的查询
  • 如果我输入 Input 1.. 结果是好的...但是当我输入 input 2.. 结果将显示 Id 5 & 6...

标签: sql sql-server alphanumeric


【解决方案1】:

那是因为between 使用字母顺序。您可能应该添加另一个检查以确认搜索的代码与开始和/或结束的长度相同。这可以通过在第一个子句周围加上括号并添加 AND (len('$serialno') = len (Start))

来完成

这将导致以下应该起作用的方法

$tsql = "SELECT Product FROM tbl_serial_range WHERE ('$serialno' BETWEEN Start AND End) AND (len('$serialno') = len (Start)) ";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    相关资源
    最近更新 更多