日期:2014-05-19  浏览次数:20588 次

一个Select语名句如何写。
如何取出数据库中这样的记录
图书名,图书所属专题book_ztid:形如
书名A           4
书名B           2,4,5
书名C           3,5,14,24,25,34
书名D           4,24

现在搜索专题book_ztid为4的的记录

------解决方案--------------------
select * from 表 where charindex( ',4, ',book_ztid)> 0
------解决方案--------------------
select * from tablename where charindex( '4 ',book_ztid)> 0
------解决方案--------------------
select * from 表 where charindex( ',4, ', ', '+book_ztid+ ', ')> 0

------解决方案--------------------
select * from tablename where charindex( ',4, ', ', '+book_ztid+ ', ')> 0

------解决方案--------------------
create table T(book_name nvarchar(10), book_ztid varchar(20))
insert T select '书名A ', '4 '
union all select '书名B ', '2,4,5 '
union all select '书名C ', '3,5,14,24,25,34 '
union all select '书名D ', '4,24 '

select * from T
where charindex( ',4, ', ', '+book_ztid+ ', ')> 0

--result
book_name book_ztid
---------- --------------------
书名A 4
书名B 2,4,5
书名D 4,24

(3 row(s) affected)
------解决方案--------------------
select * from tablename where tablename where book_ztid like '4 ' or book_ztid like '%,4,% ' or book_ztid like '4,% ' or book_ztid like '%,4 '
------解决方案--------------------
select * from tablename where ', '+book_ztid+ ', ' like '%,4,% '