日期:2014-05-16  浏览次数:20739 次

怎么从MYSQL的字符串字段中匹配一个字符???
表C_file,其中有个字段是spile,他存的是字符形式,例如:1,2,10,11
SQL code
 
C_file

ID     spile
1      2,10,11
2      2,3,20,22
3      1,6,8
4      5,6,1,9


SQL code
 
SQL:   select * from C_file where spile LIKE '%1%'

如果这样查询的话,会查询出ID为1、3、4,但正确的应该是3、4

那么这个SQL语句应该怎么写才正确的查询出1

------解决方案--------------------
SQL code
select *
from C_file
where find_in_set(1,spile)

------解决方案--------------------
SQL code

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>