比如我有两张表。 比如
info1 info2
spdm mc mc
123123 小洋人 洋人
123121 大水牛 牛
123111 小牛人 ....
...... .....
我知道like %%可以模糊查找但是只能有一个返回值才行
select spdm,mc from info1 where mc in (select mc from info2)这样就不行了。换个like 也无法查询。请问一下。我应该怎么写这段语句?
info1 info2
spdm mc mc
123123 小洋人 洋人
123121 大水牛 牛
123111 小牛人 ....
...... .....
我知道like %%可以模糊查找但是只能有一个返回值才行
select spdm,mc from info1 where mc in (select mc from info2)这样就不行了。换个like 也无法查询。请问一下。我应该怎么写这段语句?
SET @sql = ''
SELECT @sql=@sql+'select * from info1 where mc like ''%'+mc+'%'' '
FROM info2
WHERE mc = '洋人'
EXECUTE (@sql)
SET @sql = 'select * from info1 where 1<>1 '
SELECT @sql=@sql+'or mc like ''%'+mc+'%'' '
FROM info2
EXECUTE (@sql)
where exists (select mc from info2 where info1.mc like '%'+info2.mc+'%')如果info2.mc是char型不是varchar型的话,最后一个条件要去掉结尾的空格。
select spdm,mc from info1
where exists (select mc from info2 where info1.mc like '%'+rtrim(info2.mc)+'%')