MySQL:来自id的查询条目,以逗号

时间:2017-05-30 00:49:57

标签: mysql comma

表1:
id1 | ref_table2(tinytext)
1 | 2,3,5
2 | 1,3,4
3 | 2个

表2:
id2 | name2(tinytext)
1 | ABC
2 |高清
3 | GHI
4 | JKL
5 | MNO
6 | PQR

如果我从table1中获取特定条目,我想列出所有table2项,其id属于table1(2,3,5)中的“ref”字符串。

“2,3,5”的所需输出为:
id |名称
2 |高清
3 | GHI
5 | MNO

1 个答案:

答案 0 :(得分:1)

在一列中存储多个值是不好的做法。我推荐使用M:N表。结构看起来像这样

M:N table-
table1_val | ref_table2
  1        |   2
  1        |   3
  1        |   5
  2        |   1
  2        |   3
  2        |   4
  3        |   2

然后你可以运行一个简单的查询

SELECT ref_table2 FROM mn_table WHERE table1_val = 1

将返回2,3和5.所以你可以使用嵌套查询,我相信看起来如下:

SELECT * FROM table2 WHERE id2 in (SELECT ref_table2 FROM mn_table WHERE table1_val = 1)