MySQL多个关键词检索字段
场景
根据标签筛选数据,标签可传入多个,用英文逗号分隔。被检索的字段值是用英文逗号拼接保存的
如:字段值为java,c,c++,python,此时传入的搜索条件是 c#,python,java
期望结果:需要能返回所有包含c#或python或java的数据
思路
使用MySQL的REGEXP
关键词进行实现,将传入的字符串把",“替换成”|"
实现
SELECT
*
FROM
YOUR_TABLE_NAME
WHERE
YOUR_FIELD_NAME REGEXP 'java|c#'
缺点
在数据量比较大或传入的参数数量比较多时,SQL执行效率会降低,建议控制传入的参数数量,或将此类数据存入搜索引擎Elasticsearch效果更好。