2013-07-24 43 views
-1

我正在做MySQL中的查詢,但我有一個問題:這是我的專欄結構MySQL的搜索匹配的查詢字符串至少一個字

|country| 
-------- 
Boston 
-------- 
Chicago 
-------- 
washington 

的事情是我可以有一個像搜索項:

North Washington 
Boston Easht 
South Chicago 

所以我想使用類似%%operador一樣,與之相匹配的:

select * from am_ciudad where Ciu_Nombre LIKE '%NORTH BOSTON'; 
select * from am_ciudad where Ciu_Nombre LIKE 'CHICAGO%'; 
select * from am_ciudad where Ciu_Nombre LIKE '%South Chicago%'; 

第二個使匹配,因爲它那撻與「芝加哥」字,但在查詢的情況下有一個前綴它沒有,有沒有辦法通過查詢字符串中至少有一個匹配?

+0

你在問什麼?任何結果,包括北部或華盛頓或波士頓或東部..或以某種方式做答案必須知道其「北華盛頓」或「波士頓東部」等 – Anigel

回答

2

IN方法

用逗號分隔的搜索查詢的列表:

SELECT * FROM am_ciudad WHERE Ciu_Nombre IN('North', 'Washington', ...) 

REGEXP方法

我能想象REGEXP會慢一些,但我沒有基準。

SELECT * FROM am_ciudad WHERE Ciu_Nombre REGEXP(North|Washington|...) 
0

您的其他搜索不匹配,因爲它們不存在。

如果你想匹配波士頓的短語我愛波士頓紅襪,那麼你將需要使用...LIKE '%Boston%';%s是通配符,所以使用它們之前和之後你匹配的單詞匹配告訴查詢你不喜歡不在乎前後會發生什麼。您的搜索字符串...LIKE '%NORTH BOSTON';告訴查詢您正在尋找<anything>North BOSTON;,這顯然是您沒有的。

希望這是有道理的,幫助。

S

-1

我不確定您的mysql版本是否支持它,但它的值得嘗試。

select * from am_ciudad where Ciu_Nombre in(NORTH,BOSTON);

其他人一樣,只需用空格替換空格,

相關問題