这条SQL语句很怪的
今天看了别人写的一个SELECT语句
select top 1 * from XT_LMGL where ( '0, '+YGIDS+ ',0 ' like '%,1,% ') AND GLLM> 0 and ( GLLM=2 OR GLLM=0)
其中YGIDS字段只是些数字, 为什么这里要像这样写( '0, '+YGIDS+ ',0 ' like '%,1,% '), 用“YGIDS=1” 这样可以吗?
------解决方案--------------------原句應該是
select top 1 * from XT_LMGL where ( '%, '+YGIDS+ ',% ' like '%,1,% ') AND GLLM> 0 and ( GLLM=2 OR GLLM=0)
------解决方案--------------------( '0, '+YGIDS+ ',0 ' like '%,1,% ')
YGIDS 里~如果是 '1,2 '或 '2,21,1 ' 那( '0, '+YGIDS+ ',0 ' like '%,1,% ')可以找到
(YGIDS like '%,1,% ')找不到
------解决方案--------------------如果YGIDS字段只是数字,不包括标点可以。
------解决方案--------------------原句應該是
select top 1 * from XT_LMGL where ( '%, '+YGIDS+ ',% ' like '%,1,% ') AND GLLM> 0 and ( GLLM=2 OR GLLM=0)
老兄,你这种写法也是错误的
select top 1 * from XT_LMGL where (YGIDS like '%1% ') AND GLLM> 0 and ( GLLM=2 OR GLLM=0)
这种才对
------解决方案--------------------select top 1 * from XT_LMGL where YGIDS like '%,1,% ' AND GLLM> 0 and ( GLLM=2 OR GLLM=0)
代码应该是想要字段里面单独1得数 最后那个gllm> 0之后 还再and gllm=2 or gllm=0好像多此一举了 不知道原题 说错了多见凉