日期:2014-05-18  浏览次数:20439 次

其实是个 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
*/