前言:是的,我意识到这是糟糕的设计,但我无法改变它。
问题
我有一个客户表,其中有一个字段“产品”。以下是样本客户产品字段中的内容示例:
36;40;362
这些数字中的每一个都引用产品表中的一条记录。我正在尝试做一个
(SELECT group_concat(productName) from products where productID=???)
但是我在使用分隔符时遇到了问题。我知道如何删除分号,并尝试过 'where INSTR' 或 IN 但我没有运气。
将整个字段返回给 PHP 然后在那里展开/解析的最佳方法是什么?
最佳答案
您可以使用 FIND_IN_SET
MySQL 中的函数。
您只需要用逗号替换分号并在查询中使用它:
SELECT group_concat(productName)
FROM products
WHERE FIND_IN_SET(productID, ???) > 0
请记住 ???
应该以逗号分隔!
关于php - 在 mysql 字段中分隔的外部 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802765/