表C_file,其中有个字段是spile,他存的是字符形式,例如:1,2,10,11
C_fileID spile
1 2,10,11
2 2,3,20,22
3 1,6,8
4 5,6,1,9
SQL: select * from C_file where spile LIKE '%1%'
如果这样查询的话,会查询出ID为1、3、4,但正确的应该是3、4那么这个SQL语句应该怎么写才正确的查询出1
C_fileID spile
1 2,10,11
2 2,3,20,22
3 1,6,8
4 5,6,1,9
SQL: select * from C_file where spile LIKE '%1%'
如果这样查询的话,会查询出ID为1、3、4,但正确的应该是3、4那么这个SQL语句应该怎么写才正确的查询出1
from C_file
where find_in_set(1,spile)
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | a,1,2 |
| 2 | 2,3,20,30 |
| 3 | 1,6,8 |
| 4 | 5,6,1,9 |
| 5 | e |
+----+-----------+
5 rows in set (0.00 sec)mysql> select *from test where instr(concat(',',name,','),',1,')<>0;
+----+---------+
| id | name |
+----+---------+
| 1 | a,1,2 |
| 3 | 1,6,8 |
| 4 | 5,6,1,9 |
+----+---------+
3 rows in set (0.00 sec)mysql>