mysql多字段多值like匹配简化
like
匹配
mysql
多字段
多值
简化
key
titleLIKE
ORsubtitleLIKE
ORtagLIKE
编程进阶笔记
发布日期
2022-09-01
更新日期
2022-09-01
阅读次数 113
文章字数 507
一个关键字,拆分,查询
$key = $param['key'] ?: "";
$key = str_replace(" ","|",$key);
这样你就可以得到多个 key,以便更好的 like,接下来,试试快速的匹配多个字段:
SELECT * FROM article WHERE
CONCAT_WS(" ", title, subtitle, tag) REGEXP "车|摩托|红色|美国|2006"
成功地实现了 15 个 like, 也就是3个字段,每个字段 like了5个关键字。
它相当于:
SELECT * FROM article WHERE
(
title LIKE "%车%"
OR subtitle LIKE "%车%"
OR tag LIKE "%车%"
) OR (
title LIKE "%摩托%"
OR subtitle LIKE "%摩托%"
OR tag LIKE "%摩托%"
) OR (
title LIKE "%红色%"
OR subtitle LIKE "%红色%"
OR tag LIKE "%红色%"
) OR (
title LIKE "%美国%"
OR subtitle LIKE "%美国%"
OR tag LIKE "%美国%"
) OR (
title LIKE "%2006%"
OR subtitle LIKE "%2006%"
OR tag LIKE "%2006%"
)
在实际代码中,它就是:
//关键字
if($key){
$where .= ' AND CONCAT_WS(" ", `title`, `body`) REGEXP "'.$key.'"';
}
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-32.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
like
匹配
mysql
多字段
多值
简化
key
titleLIKE
ORsubtitleLIKE
ORtagLIKE
发表评论
相关推荐