MySQL字符串'包含'功能

时间:2017-03-21 04:48:21

标签: mysql string

是的,这是一个被打死的问题,但我相信它有点不同。

请考虑此MySQL表test

enter image description here

所需的结果集是:

enter image description here

简而言之,如何使用 完全 此字符串选择前3条记录(id s 1,2,5) - ' 电影院,娱乐'并在 一个查询 ?也就是说,如果即使一个单词' 匹配,如何将A与上面的字符串进行比较并让它返回记录?

尝试了以下内容:

  • SELECT * FROM test WHERE A LIKE "%Cinema, Entertainment%"
  • SELECT * FROM test WHERE INSTR(A, 'Cinema, Entertainment') > 0

两者都只返回第一条记录,进行完全匹配。

SELECT * FROM test WHERE A LIKE '%Cinema%' OR A LIKE '%Entertainment%'确实有效,但我不想对可用字符串进行标记。该字符串也可以有多个CSV s。

正则表达式非常新,似乎无法形成正确的查询。

看过这些很酷的答案,

......但仍在苦苦挣扎。

提前致谢!

2 个答案:

答案 0 :(得分:1)

以下查询将有助于满足此要求。但是你需要确保A列FULLTEXT索引。

ALTER TABLE `test` ADD FULLTEXT(`A`);

SELECT * FROM `test` WHERE (match(A) against('Cinema, Entertainment' IN BOOLEAN MODE));

答案 1 :(得分:0)

使用mysql FIND_IN_SET函数获得所需的结果。

select * from `test` where find_in_set('Cinema',`A`) OR find_in_set('Entertainment',`A`);

Demo