SQL LIKE语句中通配符[^@]未生效,无法筛选不含@的邮箱
解决SQL筛选不含@符号邮箱的问题
你的问题出在对LIKE通配符[^@]的理解上:
%[^@]%的含义是包含至少一个非@的字符,而非完全不包含@。哪怕邮箱里有@,只要还有其他字符,这个条件就会匹配,所以根本筛选不出你要的结果。%[!@]%和它是同一个意思(SQL Server里两种写法等价),所以结果自然没变化。
要筛选完全不含@的邮箱,直接用NOT LIKE即可,这是最简洁通用的写法:
SELECT * FROM Customers1 WHERE email NOT LIKE '%@%';
补充说明:你之前执行的WHERE email LIKE '%[@]%'能正确找出含@的记录,反过来用NOT否定这个条件,就能精准得到不含@的2条目标记录,逻辑上完全对应。
内容的提问来源于stack exchange,提问作者gts_god
相关产品推荐
相关产品推荐

