博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 匹配 隔开的_按空格分隔关键字并搜索MySQL数据库
阅读量:1544 次
发布时间:2019-04-21

本文共 1123 字,大约阅读时间需要 3 分钟。

我正在使用PHP和MySQL.我将在下面提供一个简单的表格:

------------------------------------------------------

| id | text |

------------------------------------------------------

| 1 | The quick brown fox jumped over the lazy dog |

------------------------------------------------------

我希望用户能够使用以空格分隔的关键字进行搜索.我有一个简单的SQL查询,上面是SELECT * FROM表WHERE文本LIKE%[$keyword]%,这意味着如果我搜索“快速狐狸”,我将不会得到任何结果.有没有办法用空格分隔关键字,所以如果我搜索“快速狐狸”,它将运行3次搜索.一个用于“The”,一个用于“快速”,一个用于“狐狸” – 删除所有空白区域.虽然它应该只显示一个结果,因为它全部属于同一行而不是3,因为所有3个关键字都匹配行中的数据.

最好的方法是什么?我们欢迎所有建议做得更好.谢谢!

[编辑]

刚想到这一点,用逗号(,)分隔关键字是一个更好的选择吗?

解决方法:

SELECT *

FROM tbl

WHERE

LOWER(`text`) REGEXP '\b(the|quick|fox)\b'

火柴:

>快速的棕色狐狸跳过懒狗

>快,拿到狐狸!

>我吃了蛋糕

不匹配

>棕色的狗

在PHP中,您可以通过在空格上拆分搜索字符串并将其重新插入到|来构建此表达式在逃避每个组件之后.

$str = "the quick brown fox";

$kwds = explode(" ", $str);

$kwds = array_map("mysql_real_escape_string", $kwds);

$regexp = "\b(" . implode("|", $kwds) . ")\b";

然后在语句中使用REGEXP’$regexp’.

附录:

由于您没有在OP中提及它,我想确保您了解MySQL在MyISAM表上的全文搜索功能,以防它满足您的需求.根据您的描述,全文听起来并不完全符合您的要求,但您应该将其视为可能:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

标签:mysql,sql-like,keyword

来源: https://codeday.me/bug/20190729/1574192.html

转载地址:http://xerdy.baihongyu.com/

你可能感兴趣的文章
安卓工程师面试题,意外收获字节跳动内部资料,附带学习经验
查看>>
安卓工程师面试题,最全Android面试知识点梳理,这原因我服了
查看>>
安卓开发从零开始!2021最新Android开发者学习路线,吐血整理
查看>>
安卓开发基础面试题,30岁以后搞Android已经没有前途?真香!
查看>>
安卓开发实战讲解!为什么Flutter能最好地改变移动开发?赶紧收藏!
查看>>
安卓开发实战讲解!来一份全面的面试宝典练练手,面试真题解析
查看>>
安卓开发实战!史上最通俗计算机网络分层详解,系列篇
查看>>
安卓开发实战!大厂Android高级多套面试专题整理集合,满满干货指导
查看>>
安卓开发权威指南!2021年移动开发者未来的出路在哪里,系列篇
查看>>
安卓开发权威指南!我在美团Android研发岗工作的那5年,灵魂拷问
查看>>
【金三银四】安卓工程师跳槽经验分享,源码+原理+手写框架
查看>>
【金三银四】超全Android中高级面试复习大纲,分享PDF高清版
查看>>
【面试必会】跟我一起手写EventBus吧,实战解析
查看>>
【面试必备】百度、华为、京东、B站最新面试题汇集,面试真题解析
查看>>
【面试总结】我的阿里春招之路分享,成功入职腾讯
查看>>
三级缓存和二级缓存的区别,Android多线程断点续传,大厂直通车!
查看>>
下血本买的!卧薪尝胆70天内推入职阿里,文末领取面试资料
查看>>
中高级工程师Android开发!面试大厂应该注意哪些问题?面试必备
查看>>
事件分发机制怎么回答,Android开发究竟该如何学习,使用指南
查看>>
事件分发机制流程图,带你全面理解View的绘制流程,附大厂真题面经
查看>>