2012-10-30 63 views
1

我有一個名爲'name'的列的表。MySQL替換字符以匹配where子句

例子:

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 

那一個返回與替代的名稱列積分整個表。

任何想法?

謝謝!

+0

沒有,第三個查詢返回的所有記錄。 – content01

回答

1

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

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

謝謝! ......這樣做了! :) – content01

0

不知道我是否明白你想要做什麼。看起來好像你想搜索一個替換的表格?

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