2013-08-25 41 views
3
SELECT school WHERE school LIKE '%suny at albany%'; 

這將導致Suny在奧爾巴尼。有沒有辦法用LIKE語句通過空格分隔MySql語句?

如果我輸入:

SELECT school WHERE school LIKE '%suny albany%'; 

返回Nothing

有沒有辦法讓它們之間有LIKE語句的空白字符分開。

這樣當我進入'suny albany'時,它會返回'SUNY at Albany'。如下圖所示:

SELECT school WHERE school LIKE '%suny%' AND school LIKE '%albany%'; 

回答

4

在中間使用通配符%也。

SELECT school WHERE school LIKE '%suny%albany%'; 

你也可以離開%周圍的空間像

SELECT school WHERE school LIKE 'suny % albany'; 

防止匹配超級串像sunyys palbanyssunyalbany

4

使用另一個百分比符號,而不是空間的,像這樣:

SELECT school WHERE school LIKE '%suny%albany%'; 
2

如果您想將兩個目標詞之間的可變文本限制爲最多一個詞,使用RLIKE用正則表達式:

SELECT school 
WHERE name RLIKE 'suny (\\w+)?albany'; 

這將匹配「紐約州立大學奧爾巴尼」,「奧爾巴尼紐約州立」但不是「在albany上曬太陽」。