我们假设我有一张这样的桌子......
id | value
----------
1 | 4
2 | a8
3 | 13
4 | a2
5 | 7
因此,值中的某些数字在它们前面有一个“a”,而其他数字则没有。
现在让我们说我想要提取高于6的任何数字 - 包括前面带有“a”的任何数字。
所以看起来像这样的查询(插入一些我知道在PHP中不起作用的PHP)
SELECT * FROM table WHERE str_replace("a","",value)>6;
预期结果应该是......
id | value
----------
2 | a8
3 | 13
5 | 7
请注意,我不想真正摆脱SQL表中的“a”。该表应保持不变。不过,如果结果返回中没有“a”,那也没关系。
答案 0 :(得分:1)
基本上你必须:
+ 0
作为快捷方式)试试这个:
SELECT id, value FROM table
WHERE REPLACE(value, "a", "") + 0 > 6
如果您还想在结果中添加“已清理”字段,则必须将REPLACE
添加到您的select语句中:
SELECT id, REPLACE(value, "a", "") + 0 value FROM table
WHERE REPLACE(value, "a", "") + 0 > 6