如果没有' - ' MySQL的

时间:2015-06-01 07:59:07

标签: mysql replace

问题我需要通过电话计算table2以内的行数,我有两张表

说明 table1有列电话,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, '-', '')) 

3 个答案:

答案 0 :(得分:2)

您必须尝试NOT IN

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

See it in Action

答案 1 :(得分:1)

试试这个,只有当table2.phone得到' - '和table1.phone没有那个

   SELECT count(*) FROM table1 
    WHERE phone NOT IN
      (SELECT REPLACE(phone, '-', '') from table2 );

答案 2 :(得分:0)

100%工作

SELECT count(*) FROM table1 WHERE phone NOT IN(SELECT REPLACE(phone, '-', '') from table2 );