php - 在php mySQL数据库搜索查询中捕获整个单词而不是部分单词

标签 php mysql search cpu-word

初学者,我正在编写一个 PHP 搜索程序,它将在 MySQL 数据库中查找关键字。如何仅捕获整个单词而不是部分单词(例如,只捕获 man 而不是 wo“man”)。

//construct query

$x++;

    if ($x==1)

        $construct = "keywords LIKE '%$search_each%'";

    else

        $construct = "keywords LIKE '%$search_each%'";

感谢您的帮助

最佳答案

使用分隔符。假设它们之间用空格分隔:

$construct = "concat(' ', keywords, ' ') LIKE '% $search_each %'";

如果它们之间用逗号分隔,您可以使用:

$construct = "find_in_set($search_each, keywords) > 0";

这些都没有特别好的性能,因为它们需要全表扫描。

您应该有一个单独的表,每个实体 ID/关键字一行。不要将关键字存储在单列列表中!

关于php - 在php mySQL数据库搜索查询中捕获整个单词而不是部分单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222397/

相关文章:

mysql - 使用mysql查询计算截至提及日期的总金额

algorithm - 在 N x M 矩阵中找到最大邻居数等于它们在最佳时间的邻居数

mysql - 使用通配符进行搜索的存储过程

PHP DomDocument 替换模式

php - 如何将 Wordpress 博客集成到现有网站中

php - 为什么 echo 行为不同?

php - Drupal - 如何识别 mysql 错误类型并打印自定义错误消息

mysql - 如何获取一天中每小时过去的地址数量

php - apache_get_modules() 的替代方法以获取加载的 apache 模块列表

php - 有没有办法同时使用 PDO::FETCH_ASSOC 和 PDO::FETCH_OBJ ?