选择所有具有特定号码的

我有一个关于mysql大师的问题。 我有一张这样的桌子:

     | col1  | col2         |
row1 | John  | 1,2,13,22,52 |
row2 | Dave  | 1,8,10       |
row3 | Maria | 2,3,5,11     |

我该如何编写一个查询来检查“col2”中的具体数字。 例如,我希望所有具有数字“1”的行不是“13”或“11”,而是“1”。 所以它会返回row1和row2。

我试图用“LIKE%”来做到这一点,但没有奏效

SELECT * FROM table WHERE col2 LIKE "%1%"

有什么建议么?


编辑


分成两个表?

table1
     | id | col1  | 
row1 | 1  | John  | 
row2 | 2  | Dave  | 
row3 | 3  | Maria | 
table2
     | id | f_id | col2 |
row1 | 1  | 1    | 1    |
row1 | 2  | 1    | 2    |
row1 | 3  | 1    | 13   |
row1 | 4  | 1    | 22   |
row1 | 5  | 1    | 52   |
row2 | 6  | 2    | 1    |
row2 | 7  | 2    | 8    |
row2 | 8  | 2    | 10   |
row3 | 9  | 3    | 2    |
row3 | 10 | 3    | 3    |
row3 | 11 | 3    | 5    |
row3 | 12 | 3    | 11   |

你必须使用函数FIND_IN_SET

SELECT * FROM table WHERE FIND_IN_SET('1', col2) > 0;

如果你要使用分隔表:

SELECT *
FROM table1
JOIN table2 ON table1.id = table2.f_id
WHERE table2.col2 = 1;
链接地址: http://www.djcxy.com/p/75337.html

上一篇: Select all that have specific number

下一篇: MySQL match ( ) against ( )