用select subject from bbs_board where postid = 70
查询出结果:11,22,33,44
postID是int字段。我想查找postid在指定的subject字段的记录 
如下:
SELECT * FROM bbs_board WHERE (postID IN (select subject from bbs_board where postid = 70))
即是:
SELECT * FROM bbs_board WHERE (postID IN (11,22,33,44))请问如何实现!!!就是我用:
SELECT * FROM bbs_board WHERE (postID IN (select subject from bbs_board where postid = 70))
查询出如同
SELECT * FROM bbs_board WHERE (postID IN (11,22,33,44))的结果。。但是SELECT * FROM bbs_board WHERE (postID IN (select subject from bbs_board where postid = 70))不行

解决方案 »

  1.   

    错误提示:将 varchar 值 '11,22,33,44' 转换为数据类型为 int 的列时发生语法错误。
      

  2.   

    SELECT * FROM bbs_board WHERE (postID IN (select convert(int,subject) from bbs_board where postid = 70))
      

  3.   

    SELECT * FROM bbs_board WHERE (postID IN (select cast(subject as varchar(2)) from bbs_board where postid = 70))
      

  4.   

    晕写反了。
    SELECT * FROM bbs_board WHERE (postID IN (select cast(subject as int) from bbs_board where postid = 70))
      

  5.   

    didoleo() 兄你的方法只能找到2个字符。。但是我要查找
    11,22,33,44
      

  6.   

    回复人: didoleo() ( ) 信誉:100  2004-12-10 13:52:00  得分: 0  兄台这样的字符串能转换成int吗?
    11,22,33,44
      

  7.   

    不好意思,理解错特了。
    那这样吧
    declare @mysql varchar(8000)
    delcare @field varchar(8000)
    select @field=subject from bbs_board where postid = 70
    set @mysql='select * from board where cast(postID as varchar(2)) in ('+@field+')'
    exec(@mysql)