表一:
phone_number
+123456789000_
+123456789001
+123456789002_
+123456789003
+123456789000
一些电话号码末尾的_代表空格
表b:
phone_number
+123456789000
+123456789002
表 b 包含表 a 中有空格的电话号码。空白区域被修剪。
我需要检查电话是否没有在表a中添加两次(一次有空格字符和没有空格字符)。
我试过:
SELECT a.phone_number FROM a
JOIN b ON a.phone_number = b.phone_number;
但它返回 b 中所有现有的电话号码。我想从上面的例子中得到的是+123456789000
谢谢。
最佳答案
你应该做一个自连接:
SELECT t1.phone_number
FROM a AS t1
JOIN a AS t2 ON t1.phone_number = CONCAT(t2.phone_number, '_');
编辑:
前面的查询在 a
表中查找下划线字符。要根据尾随空格字符检测重复的电话号码,您可以改用此查询:
SELECT phone_number
FROM a
GROUP BY RTRIM(phone_number)
HAVING COUNT(*) > 1
关于MySQL 用空格连接列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278414/