我有以下表结构 [id - title - tag - ..] 我想实现以下目标:
如果表中有一条标题为“I love my job and it is my hobby”的记录 如果提交的查询包含句子中的两个单词,则应选择该句子。例如查询“爱情爱好”。它应该给我上面的标题,而不是例如“我爱我的工作”。至少是先匹配查询关键字的单词多的句子,然后是匹配查询关键字的单词少的句子。
如何在表格的标题列上进行此搜索?
如果解释不清楚,我深表歉意......非常乐意帮助澄清。
谢谢你们
尝试这个 :
SELECT title FROM your_table WHERE title LIKE '%love%' AND title LIKE '%hobby%'
如果您使用的是 MyISAM 或 innoDB,则可以使用 MySQL 全文搜索:
SELECT * FROM table_name WHERE MATCH (title) AGAINST ('love hobby' IN BOOLEAN MODE);
它还将搜索单个单词。
阅读:https ://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
你也可以使用 MySQLREGEXP
SELECT title FROM table WHERE title REGEXP ' love .+ hobby';
如果您将其作为单个字符串,请尝试:
SELECT title FROM table WHERE title REGEXP REPLACE('love hobby', ' ', '.+ ');