如何编写删除TableA特定条件记录的SQL DELETE语句?
正确的SQL DELETE语句写法
你原来的语句用了精确匹配的=,只能删掉LastName完全是'ba'、PhoneNumber完全是'3'的记录,满足不了“以ba开头”和“区号为3”的需求,调整后的写法如下:
基础场景(区号是号码开头的第一位)
如果你的PhoneNumber是类似3xxxxxx这种格式,区号直接是号码开头的3,用LIKE匹配开头即可:
DELETE FROM TableA WHERE LastName LIKE 'ba%' AND PhoneNumber LIKE '3%';
'ba%'表示LastName以ba开头,后面可以跟任意字符(包括没有字符)'3%'表示PhoneNumber以3开头,匹配区号为3的记录
带分隔符的号码格式
如果PhoneNumber是带分隔符的格式,比如(3)1234567或3-1234567,可以调整匹配规则:
DELETE FROM TableA WHERE LastName LIKE 'ba%' AND (PhoneNumber LIKE '(3)%' OR PhoneNumber LIKE '3-%');
重要提醒
执行DELETE之前,建议先跑一遍SELECT语句确认要删除的记录是否正确,避免误删:
SELECT * FROM TableA WHERE LastName LIKE 'ba%' AND PhoneNumber LIKE '3%';
内容的提问来源于stack exchange,提问作者Kh Ab
相关产品推荐
相关产品推荐

