mysql - 在没有 '-' mysql 的情况下计算不在另一个表中的值

标签 mysql replace

问题:我需要通过电话统计不在table2中的行,我有两个表

描述:table1有phone列,table2也有phone列。 问题是,有时 phone 列可能包含“-”,我想将其删除,以便比较和计数它是否不存在于 table1 中。示例:

table1          table2 
id phone       id phone 
1 01-123       1  01123
2 12345        2  23456 

预期结果计数需要为 1 。 到目前为止,我写了这个查询,但它不起作用,有什么帮助吗?

SELECT count(*) FROM table1  WHERE NOT EXISTS (SELECT * FROM table2 WHERE REPLACE(table1.phone, '-', '') = REPLACE(table2.telephone, '-', '')) 

最佳答案

你必须尝试 NOT IN

SELECT Count(*) 
FROM   table1 
WHERE  phone NOT IN (SELECT Replace(telephone, '-', '') 
                     FROM   table2);

See it in Action

关于mysql - 在没有 '-' mysql 的情况下计算不在另一个表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30568415/

相关文章:

php - 获取具有相同包 ID 的用户

python - 从 MySQL 数据库递归获取所有子项

asp.net-mvc - MVC Ajax.BeginForm 替换奇怪的行为

具有多个主键的mysql REPLACE查询

php - 根据记录类型计算总和

mysql - 查询运行时间太长

SQL 替换字符串中的多个不同字符

javascript - 如何在搜索时仅使用星号通配符?

mysql - 错误代码: 1292 - Truncated Incorrect DOUBLE value: '-'

javascript - 单击 3 次后,编码的 JavaScript 不会替换元素的问题