检查mysql中逗号分隔值的列中是否存在字符串的任何单词

问题描述 投票:0回答:1

我有这个字符串“我需要红色廉价车”。

我有一个表,其中列关键字中有逗号分隔的单词。我知道我可以使用

find_in_set
来搜索该列中是否存在特定单词(例如预算或汽车),例如:

select * from products where find_in_set('budget',keywords) <> 0

但是,如果关键字列,我找不到方法来检查字符串中是否存在任何单词。

当然,我可以按单词分隔字符串并为每个单词运行上述查询,但这会增加执行时间,因此我正在寻找某种方法在一个查询中完成此操作。

mysql select
1个回答
0
投票

在 MySQL 中使用 FIND_IN_SET() 之前,您需要了解以下内容

  • 列包含逗号分隔的值,没有任何额外的空格
  • 如果有多余的空格,那么你应该用其他字符替换

从产品中选择 * WHERE FIND_IN_SET('car', REPLACE(keywords, ' ', ',')) > 0;

在使用 find_in_Set 之前,需要用逗号分隔符替换值之间的空格,效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.