【发布时间】:2018-04-08 10:59:33
【问题描述】:
我有一个 mysql 大师的问题。 我有一张这样的桌子:
| col1 | col2 | 第 1 行 |约翰 | 1,2,13,22,52 | 第 2 行 |戴夫 | 1,8,10 | 第 3 行 |玛丽亚 | 2,3,5,11 |如何编写一个查询来检查“col2”中的特定数字。例如,我想让所有数字为“1”的行不是“13”或“11”而是“1”。所以它会返回第 1 行和第 2 行。
我试图用“LIKE %”来做到这一点,但没有成功
SELECT * FROM table WHERE col2 LIKE "%1%"
有什么建议吗?
编辑
分成两张表?
表格1 |编号 | col1 | 第 1 行 | 1 |约翰 | 第 2 行 | 2 |戴夫 | 第 3 行 | 3 |玛丽亚 | 表2 |编号 | f_id | col2 | 第 1 行 | 1 | 1 | 1 | 第 1 行 | 2 | 1 | 2 | 第 1 行 | 3 | 1 | 13 | 第 1 行 | 4 | 1 | 22 | 第 1 行 | 5 | 1 | 52 | 第 2 行 | 6 | 2 | 1 | 第 2 行 | 7 | 2 | 8 | 第 2 行 | 8 | 2 | 10 | 第 3 行 | 9 | 3 | 2 | 第 3 行 | 10 | 3 | 3 | 第 3 行 | 11 | 3 | 5 | 第 3 行 | 12 | 3 | 11 |【问题讨论】:
-
你不应该在一列中有多个值。它违反了
normalization rules -
更改表结构并为每个值添加单独的
column/table -
是的。就这样
标签: mysql