问一个比较复杂的SQL查询(mySQL)

来源:百度知道 编辑:UC知道 时间:2024/06/14 07:40:22
现在有一表myTable,

其中一个字段myField的格式是:“1,2,3……,n”

就是用字符串隔开的数字值

假如我想查询出所有myField字段里有2的记录,该怎么查?

我实验了:

select * from myTable where 2 in (myField)

结果出错。。。。应该怎么写呢?求助。
1楼,不行啊,我的“1,2,3,4,5”是保存在字段里,,

我想你说的前面朋友说的语句结果有错不是说不能执行,而是结果会把有12,22,32...带2的都取出来。

正确的语句应该这么写

select * from myTable where myField like '2' or myField like '2,%' or myField like '%,2,%' or myField like '%,2'

select * from myTable where myField like '%2%'

/*
说实话,不是哥们儿讽刺你,这种句式并不能称为复杂,甚至可以说是非常简单
你的这种需求是要查询某个字段包含某个字符串,这有很多种实现的方法,
下面给你列出几种常用的方法
*/
--1,该方法用LIKE关键字和通配符 %,具体用法可以参考联机丛书
--该方法的效率问题一直是一个难以妥善处理的难题
SELECT * FROM MyTable
WHERE MyField LIKE '%2%'

--2,该方法用字符串函数 CHARINDEX ,具体用法可以参考联机丛书
SELECT * FROM MyTable
WHERE CHARINDEX('2',MyField) >= 1

--QQ:316784428 T-sql 技术爱好者,相互交流!

select * from myTable where myField like '%2%'