数据库超难的问题
现在有这么一列 
       aa 
 123,1,5 
 311,1,5 
 131,1,5   
 我想第一个,前面的是我要的条件值,也就是 
 select   *   from   db   where   aa=311   现在我不知道怎么处理这个aa,才能得到我想要的记录,用模糊查询的话很不准确。
------解决方案--------------------select * from db where  SUBSTRING(aa,1,3)= '311 ' 应该可以的
------解决方案--------------------select * from db where  left(aa, CHARINDEX( ', ', aa)-1 )=‘311’     
 ***************************************************************************** 
 欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)    
 最新版本:20070130   
 http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------select * from db where CHARINDEX( ',311, ' ,  ', ' + aa +  ', ')> 0
------解决方案--------------------select * from db where Substring(aa,0,CharIndex(aa, ', '))= '311 '
------解决方案--------------------那是因為aa字段中有的記錄根本不存在, 
 如下面這樣查詢: 
 select * from db where case when CHARINDEX( ', ', aa)> =1 then left(aa, CHARINDEX( ', ', aa)-1 ) else aa end= '311 '
------解决方案--------------------select * from db where aa like  '311% '  只有右边的%
------解决方案--------------------select * from db where aa like  '%311 ' 
 这个就行呀,和上面的都是一个道理。。。
------解决方案--------------------left(aa,3)
------解决方案--------------------up
------解决方案--------------------string parm =  "311 "; 
 int len = parm.Length; 
 StringBuilder sb = new StringBuilder(); 
 sb.Append( "select * from db where  SUBSTRING(aa,1, "); 
 sb.Append(len.ToString()); 
 sb.Append( ")= ' "); 
 sb.Append(parm); 
 sb.Append( " ' "); 
 string sql = sb.ToString();
------解决方案--------------------select * from db where aa like  '311,% ' 
------解决方案--------------------select * from db where  left(aa, CHARINDEX( ', ', aa)-1 )= '311 '
------解决方案--------------------select * from db where  CHARINDEX( ', ', aa) >  -1
------解决方案--------------------上面发错了,就是验证311在aa里面,索引大于-1,就说明它存在