like怎么联表?mysql

f305424238 2011-01-26 03:51:05
sql语句类似 SELECT A.name FROM A LEFT JOIN B ON A.name like B.name WHERE A.name LIKE IN('ff''ie');我是新手,碰到这个问题不知道怎么办了,网上找了很多,都没有我想要的,求大牛解答。谢谢
...全文
145 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoguanzhao 2011-01-27
  • 打赏
  • 举报
回复
oracle中好象不支持like any

用这个试试吧
SELECT A.name FROM A LEFT JOIN B ON A.name = B.name WHERE A.name LIKE '%ff%' or A.name like '%ie%';
f305424238 2011-01-27
  • 打赏
  • 举报
回复
额,谢谢北漂☆叶子 和各位大牛,马上结贴
叶子 2011-01-26
  • 打赏
  • 举报
回复
like 和 in 不能直接放在一起用

之前有人专门问过这个问题:
http://topic.csdn.net/u/20070723/17/dc3de908-8804-4af5-adcb-058c13b78101.html
f305424238 2011-01-26
  • 打赏
  • 举报
回复
SELECT A.name FROM A LEFT JOIN B ON A.name = B.name WHERE A.name LIKE any ('%ff%','%ie%');
谢谢 试过,不行
xiaoguanzhao 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 f305424238 的回复:]
sql语句类似 SELECT A.name FROM A LEFT JOIN B ON A.name like B.name WHERE A.name LIKE IN('ff''ie');我是新手,碰到这个问题不知道怎么办了,网上找了很多,都没有我想要的,求大牛解答。谢谢
[/Quote]

SELECT A.name FROM A LEFT JOIN B ON A.name = B.name WHERE A.name LIKE any ('%ff%','%ie%');

TD数据库的写法。。。参考一下
f305424238 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 maco_wang 的回复:]
SQL code

--貌似再mysql中字符串拼接是用concat函数。

--如果是用like就是
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE CONCAT('%',b.col,'%')
WHERE a.col LIKE '%ff%' OR a.col LIKE '%ie%'

--要用in就是
sel……
[/Quote]
可能我没说清楚,我想说的是 A.name like in('%ff%','IE');呵呵 还得麻烦一下
叶子 2011-01-26
  • 打赏
  • 举报
回复

--貌似再mysql中字符串拼接是用concat函数。

--如果是用like就是
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE CONCAT('%',b.col,'%')
WHERE a.col LIKE '%ff%' OR a.col LIKE '%ie%'

--要用in就是
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE CONCAT('%',b.col,'%')
WHERE a.col in ('ff','ie')

对mysql 不熟悉
函数我在这看的:
http://topic.csdn.net/u/20080725/19/be46cd8e-322b-4476-b2bc-7963780407f6.html
f305424238 2011-01-26
  • 打赏
  • 举报
回复
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE '%'+b.col+'%'
WHERE a.col LIKE '%ff%' OR a.col LIKE '%ie%'
额,还有这个+号,在mysql里面应该用什么连接呢,我这里报错
f305424238 2011-01-26
  • 打赏
  • 举报
回复
额,忘记加%了,不好意思
f305424238 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 maco_wang 的回复:]
SQL code

--a表
declare @tablea table (id int,col varchar(3))
insert into @tablea
select 1,'aaa' union all
select 2,'bbb' union all
select 3,'ccc' union all
select 4,'ddd' union all
select 5,'……
[/Quote]
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE '%'+b.col+'%'
WHERE a.col LIKE '%ff%' OR a.col LIKE '%ie%'
红色的用in怎么代替呢,谢谢
fengyun142415 2011-01-26
  • 打赏
  • 举报
回复
用 like 条件要加%
gw6328 2011-01-26
  • 打赏
  • 举报
回复
楼主没有加入'%'符号就是 =的意思啊。 a.name=b.name
叶子 2011-01-26
  • 打赏
  • 举报
回复

--a表
declare @tablea table (id int,col varchar(3))
insert into @tablea
select 1,'aaa' union all
select 2,'bbb' union all
select 3,'ccc' union all
select 4,'ddd' union all
select 5,'eee' union all
select 6,'fff'
--b表
declare @tableb table (id int,col varchar(4))
insert into @tableb
select 10,'aa' union all
select 11,'bba' union all
select 12,'ccd' union all
select 13,'ddde' union all
select 14,'ee' union all
select 15,'ff'
--联查
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE '%'+b.col+'%'
/*
id col id col
----------- ---- ----------- ----
1 aaa 10 aa
2 bbb NULL NULL
3 ccc NULL NULL
4 ddd NULL NULL
5 eee 14 ee
6 fff 15 ff
*/

--加上条件
select * from @tablea a LEFT JOIN @tableb b
on a.col LIKE '%'+b.col+'%'
WHERE a.col LIKE '%ff%' OR a.col LIKE '%ie%'
/*
id col id col
----------- ---- ----------- ----
6 fff 15 ff
*/
f305424238 2011-01-26
  • 打赏
  • 举报
回复
我想要like,可是不知道怎么用。要是=就好办了
f305424238 2011-01-26
  • 打赏
  • 举报
回复
全词匹配
Shawn 2011-01-26
  • 打赏
  • 举报
回复
--这儿是mssql
--mssql请参考
SELECT A.name 
FROM A LEFT JOIN B
ON CHARINDEX(B.[name], A.[name]) > 0
WHERE A.name IN('ff', 'ie')

fengyun142415 2011-01-26
  • 打赏
  • 举报
回复
是用= 还是 like ?
王向飞 2011-01-26
  • 打赏
  • 举报
回复
说说你想干什么?要怎么匹配

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧