【问题标题】:MySQL Replace characters to match in where clauseMySQL替换字符以匹配where子句
【发布时间】:2012-10-30 15:49:44
【问题描述】:

我有一个表,其中有一列名为“名称”。

例子:

ID   Name       Other      Field
1    that's      x           y
2    o-k         x           y

我希望能够执行以下操作:

Select * FROM table WHERE Name like %thats%

并将 ID 为 1 的行作为结果,或者执行:

 Select * FROM table WHERE Name like %ok%

并将 ID 为 2 的行作为结果。

到目前为止,我只设法执行:

SELECT *, REPLACE( Name , '.', '' ) AS Name FROM table

返回的是整个表格,其中的点被替换为 Name 列。

有什么想法吗?

谢谢!

【问题讨论】:

  • 不,第三次查询返回所有记录。

标签: mysql database string where-clause


【解决方案1】:

你可以清理WHERE子句中的Name字符串:

SELECT * FROM table
 WHERE REPLACE(
           REPLACE( Name, "-", "" ), "'", ""
       ) LIKE "%ok%"

【讨论】:

    【解决方案2】:

    不确定我是否理解您要执行的操作。好像要搜索替换的表?

    SELECT Name FROM twinkle
    WHERE Name EXISTS
        (SELECT Name FROM twinkle WHERE Name Like %thats%)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-06
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多