SQL从逗号定义的字符串

时间:2015-06-16 06:53:07

标签: mysql sql-like

我的数据库中有以下表格。

MYSQL Table

我正在触发以下查询以获取一些关键字:

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

这样做很好,给了我两个结果%car%%rent%car%

但是不会为最后一条记录触发查询,因为有两个逗号分隔的关键字,因此我需要为每个逗号分隔关键字提供多个或条件的相同查询,如下所示(如果行中有逗号分隔的字符串)否则它应该与上面相同):

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函数,但却无法获得这样的功能。

任何人都可以帮我这么做。

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望通过将空格替换为%来搜索关键字(多字词),以使其与%pre-word%post-word%匹配。

e.g。对于关键字rent home,应搜索rent homerental homerental homes

如果正确,以下查询应满足您的要求:

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

DEMO