我的数据库中有以下表格。
我正在触发以下查询以获取一些关键字:
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函数,但却无法获得这样的功能。
任何人都可以帮我这么做。
答案 0 :(得分:0)
根据我的理解,您希望通过将空格替换为%
来搜索关键字(多字词),以使其与%pre-word%post-word%
匹配。
e.g。对于关键字rent home
,应搜索rent home
,rental home
,rental homes
等
如果正确,以下查询应满足您的要求:
SELECT keyword FROM `ads` WHERE keyword
LIKE CONCAT('%', replace('rent home', ' ', '%'), '%');