匹配mysql中的字符串

时间:2013-06-05 09:46:34

标签: mysql keyword

我正在尝试使用包含字符串

的一部分的列从表中获取数据

表search_data:

id      data

 1      news   
 2      today     
 3      latest

当我使用关键字'news'

 select * from search_data where data like '%news%'

取得结果。但当我使用关键词'最新新闻'时

select * from search_data where data like '%latest news%' 

它没有显示空结果集。

有人可以帮我查询。

感谢。

4 个答案:

答案 0 :(得分:1)

您可以添加FULLTEXT索引,以便使用MATCH AGAINST

select 
  * 
from 
  search_data 
where 
  match(data) against ('latest news' IN BOOLEAN MODE) 

这将是最有效的方式,您可以阅读更多here

答案 1 :(得分:0)

这是因为你正在寻找带有文本两侧的完整字符串'最新新闻'。您需要执行where data like '%news%' or data like '%latest%'才能搜索不包含在同一行中的两个关键字

答案 2 :(得分:0)

我不知道你的意思,但我猜你想做点什么 从search_data中选择*,其中数据如'%latest%'或数据如'%news%'

答案 3 :(得分:0)

从search_data中选择*,其中此查询中的'%latest news%'等数据您提及最新消息,这意味着结果必须包含字符串中的“最新新闻”,因为您的数据集中不存在最新消息和新闻分段您可以在查询中使用“或”和“和”运算符