初学者,我正在编写一个 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/