需要使用的语句如下:
SELECT * FROM table1 WHERE int_MyID in (SELECT txt_MyText FROM table2 WHERE int_MyID=1);我做过的试验:
1、
SELECT txt_MyText FROM table2 WHERE int_MyID=1
这个语句查询出来的结果会是 1,2 (txt_MyText字段类型是varchar)
但int_MyID字段类型是int2、
如果执行
SELECT * FROM table1 WHERE int_MyID in (1,2)
则可以显示两条记录3、
但执行
SELECT * FROM table1 WHERE int_MyID in ('1,2')
就只显示一条记录了可根据第一个表达式查询出来的结果确实就是如上所示,一个varchar型值我的问题:如何将varchar型 '1,2' 做成int型的列表 1,2
SELECT * FROM table1 WHERE int_MyID in (SELECT txt_MyText FROM table2 WHERE int_MyID=1);我做过的试验:
1、
SELECT txt_MyText FROM table2 WHERE int_MyID=1
这个语句查询出来的结果会是 1,2 (txt_MyText字段类型是varchar)
但int_MyID字段类型是int2、
如果执行
SELECT * FROM table1 WHERE int_MyID in (1,2)
则可以显示两条记录3、
但执行
SELECT * FROM table1 WHERE int_MyID in ('1,2')
就只显示一条记录了可根据第一个表达式查询出来的结果确实就是如上所示,一个varchar型值我的问题:如何将varchar型 '1,2' 做成int型的列表 1,2
a.*
from
table1 a,
table2 b
where
charindex(','+rtrim(a.int_MyID)+',' , ','+b.txt_MyText+',')>0
and
b.int_MyID=1
table1
WHERE cast(int_MyID as varchar(10)) in (SELECT txt_MyText FROM table2 WHERE int_MyID=1)
exec('SELECT * FROM table1 WHERE int_MyID in ('+ '1,2' +')')--2.换一种方式
SELECT * FROM table1 WHERE Charindex(','+int_MyID+',', ',1,2,')>0
SELECT txt_MyText=(case when ISNUMERIC(txt_MyText) =1 then cast(txt_MyText as int) else -1 end) FROM table2 WHERE int_MyID=1
--理解錯了
exec('SELECT * FROM table1 WHERE int_MyID in ('+SELECT txt_MyText FROM table2 WHERE int_MyID=1+')')
declare @x varchar(5000)
SELECT @x=txt_MyText FROM table2 where int_MyID=1
set @s='SELECT * FROM table1 WHERE int_MyID in ('+@x+')'
exec(@s)
FROM table1 a inner join txt_MyText b
on charindex(','+cast(a.int_MyID as varchar)+',',','+b.txt_MyText+',')>0
where b.int_MyID=1
select cast(Concat('(',REPLACE((SELECT txt_GList from sys_g where int_GID in (select txt_GList FROM sys_u where int_UID = in_uid)) , ',','),('),')') as char(512)) into @tmp_gl; select * from sys_m where FIND_IN_SET(concat('(',int_MID,')'), @tmp_gl);3、大家可以看到,分成两名是可以的,但合并到一句中就不成。select * from sys_m where FIND_IN_SET(concat('(',int_MID,')'), cast(Concat('(',REPLACE((SELECT txt_GList from sys_g where int_GID in (select txt_GList FROM sys_u where int_UID = in_uid)) , ',','),('),')') as char(512)));不知道有不有熟悉MYSQL的给解释一下。