2015-06-16 46 views
1

我在我的數據庫中有下表。從逗號生成的OR條件字符串

MYSQL Table

我射擊以下查詢來獲取一些關鍵字:

SELECT CONCAT('%',replace (keyword, ' ','%'),'%') FROM `ads` WHERE "rent 
car" LIKE CONCAT('%',replace (keyword, ' ','%'),'%') 

這是工作的罰款,並給了我兩個結果%car%%rent%car%

但查詢不會因爲有兩個以逗號分隔的多個關鍵字,所以我需要多個相同的查詢或每個逗號分隔的關鍵字如下所示的條件(如果有以逗號分隔的s連續trings否則它應該是同上):

SELECT CONCAT('%',replace (keyword, ' ','%'),'%') FROM `ads` WHERE ("rent 
home" LIKE '%rent%home%') OR ("rent 
home" LIKE '%rental%homes%') OR ("rent 
home" LIKE '%rent%2bhk%') OR ("rent 
home" LIKE '%rent%3bhk%') 

我知道,我需要一個SQL函數,但不能得到這樣那樣的功能。

任何人都可以幫助我做到這一點。

+0

&什麼關鍵字,要傳遞? –

+0

rent home是用戶搜索字符串。 –

+0

你是否支持多詞搜索? –

回答

0

根據我的理解,您希望通過用%替換空格來搜索關鍵字(多字),以便它匹配%pre-word%post-word%

例如關鍵字rent home,應搜索rent homerental homerental homes

如果正確,下面的查詢應滿足您的要求:

SELECT keyword FROM `ads` WHERE keyword 
LIKE CONCAT('%', replace('rent home', ' ', '%'), '%'); 

DEMO