问一个比较复杂的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”是保存在字段里,,
其中一个字段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%'