其实是个 SQL问题~
productinfo表 字段 productflow 里面的数据是
111,112,113
111,114,211
111,115,334
111,114
我想把11,112,113 跟111,114取出来 也就是说最前面是1的
select * from productinfo where productflow like '1% ' 这样取 只能取第一个前面是1的 ,后面就可以随便了 应该怎么做呢 ?
select * from productinfo where productflow like '%,1% '
好像也不对 ~~~高手请指点一下~
------解决方案--------------------select * from productinfo where productflow like '1% '
没错啊
另外,
111,112,113
111,114,211
111,115,334
111,114
是一条记录还是多条记录啊?
------解决方案--------------------hai173() ( ) 信誉:100 Blog 加为好友 2007-6-9 9:55:51 得分: 0
select * from productinfo where productflow like '1% '
就把4条记录都取出来了啊 ~
----------
“我想把11,112,113 跟111,114取出来 也就是说最前面是1的”
這四條紀錄的最前面都是1啊?不是滿足條件的?
你的意思是不是沒有表述清楚?
------解决方案--------------------他的意思是productflow字段里面第一个全为1的取出来
晕死...
你写明白点,这样大家读起来太累了
------解决方案--------------------你的productflow字段记录为111,112,113 WHERE ID=1时。
可这样吧,where productflow.substring(0,3) like '1% '
productflow.substring(3,3) like '1% '
productflow.substring(6,3) like '1% '
------解决方案--------------------楼上的这样不可行吧
看它的字段好象是以 ", "分割的字符串,那即使是每三个一个分割,那好象不是固定的只有三个分割啊,一到三行都是三个分割,可是第四行可是就两个分割啊,就是它是长度是不固定的吧?
------解决方案--------------------長度不是固定的,gcaling2006() 的應該不通用
可以這麼寫
Select * From productinfo Where ', ' + productflow Not Like '%,[^1]% '
------解决方案----------------------創建測試環境
Create Table productinfo
(productflow Varchar(100))
Insert productinfo Select '111,112,113 '
Union All Select '111,114,211 '
Union All Select '111,115,334 '
Union All Select '111,114 '
Union All Select '211,114 '
GO
--測試
Select *From productinfo Where ', ' + productflow Not Like '%,[^1]% '
GO
--刪除測試環境
Drop Table productinfo
--結果
/*
productflow
111,112,113
111,114
*/