mysql类%…%与表一起

h22fl7wq  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(305)

我有两张有电话号码的table。在表a中,我必须删除表b中没有的所有电话号码。
表b中的电话号码带有conterycode,但表a中的电话号码没有conterycode。
我尝试使用类似于%phonenumber%的命令
我试过这个代码,但那是给我一个语法错误

DELETE FROM temp_table
WHERE NOT EXISTS (
    SELECT *
    FROM TableB
    WHERE WorkTelephoneNumber LIKE temp_table.%PhoneNumber%
);

# 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%PhoneNumber%

)' at line 5
wvyml7n5

wvyml7n51#

你可以在下面试试-

DELETE FROM temp_table
WHERE NOT EXISTS (
    SELECT *
    FROM TableB
    WHERE WorkTelephoneNumber LIKE concat('%',temp_table.PhoneNumber,'%')
);
oalqel3c

oalqel3c2#

子查询将非常慢。您可以改用join

Delete t1 from temp_table t1 
join TableB on tableB.WorkTelephoneNumber like concat('%',t1.PhoneNumber,'%')

相关问题