php - 在 mysql 字段中分隔的外部 ID

标签 php mysql split explode

前言:是的,我意识到这是糟糕的设计,但我无法改变它。

问题

我有一个客户表,其中有一个字段“产品”。以下是样本客户产品字段中的内容示例:

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/

相关文章:

mysql - 如何编辑此 mySQL 查询以不选择 2 列中具有相同值的行?

MySql "comments"参数作为描述符?

excel - 无法从 url 中提取 id

php - SQLSTATE[HY000] [2002] yii2 中没有那个文件或目录

php - Yii2 和 PostreSQL : How to change column type from string to jsonb?

php - 根据 ID 选择行,然后再次根据文本框的基数选择行

javascript - JS中的拆分数组

PHP循环充当cronjob[确保只有一个实例运行]

mysql - mongo 是否适合与 MySQL 一起使用?

java - Java 中的缓冲读取器、行计数、拆分、解析