mysql使用字符串替换搜索记录

时间:2013-10-04 19:11:32

标签: mysql

我们假设我有一张这样的桌子......

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”,那也没关系。

1 个答案:

答案 0 :(得分:1)

基本上你必须:

  1. 清理数据
  2. 转换为int(使用+ 0作为快捷方式)
  3. 使用结果过滤
  4. 试试这个:

    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