比较不同表mysql中的2列

时间:2012-02-12 16:54:40

标签: mysql compare

我有两个包含商业信息的表,第一个让我们称之为A有(id,info,category)第二个让我们称之为B有(id,phone,category)。

A.info包含地址,电话和其他信息。 B.phone只包含一个电话号码。

我想将B.category设置为A.info中B.phone存在的A.category。

我在想这样的事情:

update A
inner B
set B.category = A.category
where B.phone like %A.phone%

没有幸运的场外

2 个答案:

答案 0 :(得分:2)

好的,试试这个查询:

update b, a
set b.category = a.category
where a.info like concat('%', b.phone, '%');

答案 1 :(得分:0)

看起来您提供了文字A.Phone值而不是实际列值。

您提到在其中一条评论中也使用了通配符。如果您还需要更精细的控制,可以使用REGEXP。

我不确定您的列数据类型是什么,但这是一个匹配记录的示例 其中a.info REGEXP concat('[[:<:]]',b.phone,'[[:>:]]')