我有一个包含三列的产品表:
product_id
产品名称
product_keywords
它包含类似这样的值:
product_id |产品名称| product_keywords
1台计算机,计算机,个人计算机,笔记本电脑,个人计算机,台式计算机
-------------------------------------------------- -------------------------------------------------- --------------'
2个||移动|智能电话,电话,诺基亚,索尼
-------------------------------------------------- -------------------------------------------------- ----------------'
现在,我需要一个SQL查询,如果有任何客户搜索PC或个人计算机,它将返回product_name = product_id = 1的计算机,依此类推。
最佳答案
尽管我的本能是重新设计架构以使其具有一个具有唯一值的keywords
表以及产品和关键字之间的映射表,但MySQL实际上提供了一种优雅的方式来使用find_in_set
查询以逗号分隔的字符串功能:
SELECT product_id, product_name
FROM products
WHERE FIND_IN_SET ('pc', keywords) > 0 OR
FIND_IN_SET ('personal computer', keywords) > 0
关于mysql - MySQL选择列上逗号分隔值的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30182706/