梦想之翼
发布于

如何检查字符串 MySQL 中是否存在逗号分隔字符串中的值

我有一个表,其中包含一个名为 的列。在此列中,我有一个逗号分隔的列表,例如 。tagsair conditioner, tv, fridge

我想检查逗号分隔列中是否有任何单词存在于字符串中,例如

  
Is there an air conditioner in the room?

因此,查询应返回匹配项,如 column 中所示,该值存在。tagsair conditioner

我正在考虑使用 ,但在这种情况下它不起作用,因为逻辑应该颠倒。find_in_set

  select * from products where find_in_set('Is there an air conditioner in the room?',tags) <> 0
浏览 (21)
点赞
收藏
1条评论
Klustron小助手
首先不要使用逗号分隔的字段。通过将标签放入其自己的表中并使用外键指向表来规范化架构products CREATE TABLE product_tags ( tag VARCHAR(100), product_id INT, PRIMARY KEY (tag, product_id), FOREIGN KEY (product_id) REFERENCES products (id) ); 然后你可以使用 SELECT p.* FROM products AS p JOIN product_tags AS pt ON p.id = pt.product_id WHERE LOCATE(pt.tag, &#39;Is there an air conditioner in the room?&#39;)
点赞
评论