2

我有以下表格架构

id   name     type
1    ABC      1,2,3,4
2    PQR      2,3,5 
3    XYZ      1,4
4    TCS      3,1
5    PPP      2,3

在这里,我希望结果显示如下,即类型为 1 和 4。
结果:-

id   name     type
1    ABC      1,2,3,4
3    XYZ      1,4
4    TCS      3,1
4

3 回答 3

5

您可以FIND_IN_SET()为此使用函数:

如果字符串str在由 N 个子字符串组成的字符串列表strlist中,则返回 1 到N范围内的值。字符串列表是由以“,”字符分隔的子字符串组成的字符串。如果str不在strlist中或strlist是空字符串,则返回 0 。

SELECT * FROM Table1
WHERE
     FIND_IN_SET(1, type)
  OR FIND_IN_SET(4, type)

输出:

╔════╦══════╦═════════╗
║ ID ║ NAME ║  TYPE   ║
╠════╬══════╬═════════╣
║  1 ║ ABC  ║ 1,2,3,4 ║
║  3 ║ XYZ  ║ 1,4     ║
║  4 ║ TCS  ║ 3,1     ║
╚════╩══════╩═════════╝

看到这个 SQLFiddle

更多数据的 SQLFiddle

于 2013-05-14T05:09:39.343 回答
0

尝试检查所有条件,例如,

select * from table where
type like '1' OR type like '4' 
OR type like '1,%' OR type like '4,%' 
OR type like '%,1' OR type like '%,4' 
OR type like '%,1,%' OR type like '%,4,%'
于 2013-05-14T05:04:30.240 回答
-2

SELECT * FROM user_master WHERE TYPE LIKE '%4%' OR TYPE LIKE '%1%'

于 2013-05-14T04:59:21.480 回答