我有以下数据:
[sequences]
/a1
/a2
/a3
...
/a10
查询SELECT * FROM sequences WHERE nbr <= '/a10'
应该返回上面的列表,但实际上返回了以下内容:
[results]
/a1
/a10
如何使其返回上述列表中的所有行?
我有以下数据:
[sequences]
/a1
/a2
/a3
...
/a10
查询SELECT * FROM sequences WHERE nbr <= '/a10'
应该返回上面的列表,但实际上返回了以下内容:
[results]
/a1
/a10
它按照预期工作。要比较数值,您需要以某种方式将它们转换为数字。一个好的开始是使用substr(yourfieldname, 3)来截取
/a。然后您可以使用
convert`将其强制转换为int类型,因此您的最终查询将类似于:
select * from sequences where convert(int, substr(nbr, 3)) <= 10
SELECT *
FROM sequences
WHERE toInt(substring (nbr, 2)) <= 10;
'substring'函数和'toInt'函数的名称和语法因数据库实现而异。