Kal*_*hah 1 sql t-sql sql-server sql-server-2008
这是我的数据:
Column:
8
7,8
8,9,18
6,8,9
10,18
27,28
我只想要包含其中的行8.当我做:
Select * 
from table 
where column like '%8%'
我得到了以上所有,因为它们包含一个8.当我做:
Select * 
from table 
where column like '%8%' 
   and column not like '%_8%'
我明白了:
8
8,9,18
我没有6,8,9,但我需要,因为它有8它.
任何人都可以帮助获得正确的结果?
我建议如下:
SELECT *
FROM TABLE
WHERE column LIKE '%,8,%' OR column LIKE '%,8' OR column LIKE '8,%' OR Column='8';
但我必须说存储这样的数据是非常低效的,例如,索引在这里没有帮助,你应该考虑改变你存储数据的方式,除非你有充分的理由保持这种方式.
编辑:
我强烈建议在问题评论中查看@Bill Karwin的链接: