mysql - 从逗号分隔值查询结果并查询要显示的每个值

标签 mysql sql select join find-in-set

我有一个包含 ID、日期和逗号分隔字段的表。 例如值如:

id    date         options

1     2013-12-26   3006,3009,4010
2     2013-12-25   3002,3001,5090
3     2013-12-24   2909,1012,6089
4     2013-12-23   3001,4009,5008

查询特定日期后,例如2013-12-26 我得到的结果是 3006,3009,4010 现在我有另一个表 2,其中包含这些个人编号。带有附加字段。

根据这些结果,我需要创建一个表单来分别显示这些 3006,3009,4010 的结果..

如: 3006 表 2 值中具有此值的所有行的内容可能是固定的或表单的某些输入字段,因此如果我在提交后在此创建的表单中输入值,我应该得到下一个编号。即 3009 等等。

我能够显示这些 nos 的所有结果。在一起,但我需要让他们分开。这样我就得到 3006 提交表格的结果 3009 提交表格的结果 4010 提交表格的结果。等等

最佳答案

您可以使用 FIND_IN_SET()功能。

试试这个:

SELECT a.id, a.date, a.options, b.* 
FROM tableA a 
INNER JOIN tableB a ON FIND_IN_SET(b.id, a.options)

注意: 就我而言,将多个 ID 存储在单个记录中并不是好的表设计。 不要设计这种类型的表。尝试创建映射表,其中映射了两个表 ID。尝试在 1NF 或超过适用的范围内创建数据库

多对多关系的示例:

**many-to-many relationship**

关于mysql - 从逗号分隔值查询结果并查询要显示的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20781923/

相关文章:

mysql - 发现 mysql 中每小时执行的选择查询没有?

mysql - 使用 MySQL 检查两个 IPv6 地址是否在同一子网中

php - PHP 中的 Oracle 数据 lng

sql - 在 postgres json 字段中查询 json 键

mysql - 需要有关 SELECT * FROM 的建议

sql - 如何短路 SQL Where 子句

c - 是否可以对管道进行读而不是 block ,而是写 block ?

mysql - MySQL 中的 SELECT 问题

php - 在 foreach 循环期间将查询结果插入 php 字符串

php - Drupal Commons 迁移站点 500 错误