我有以下表格架构
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
您可以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 ║
╚════╩══════╩═════════╝
尝试检查所有条件,例如,
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,%'
SELECT * FROM user_master WHERE TYPE LIKE '%4%' OR TYPE LIKE '%1%'