我有一个包含三列的产品表:
- 产品 ID
- 产品名称
- 产品关键字
它包含类似的值:
product_id | product_name | product_keywords
1 |Computer |pc, computer, laptop, personal computer, desktop computer
------------------------------------------------------------------------------------------------------------------'
2 |Mobile |Smart Phone, Phone, Nokia, Sony
--------------------------------------------------------------------------------------------------------------------'
现在我需要一个 SQL 查询,如果任何客户搜索 pc 或个人计算机,它将返回 Product_name = Computer with Product_id = 1 等等。
最佳答案
虽然我的第一 react 是重新设计架构以拥有一个具有唯一值的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 在列中以逗号分隔值选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30182706/