我有一张表“电话簿”,其中有1.5M记录, 一些记录的“phonenumber”字段为空。
我想将“phonenumber”字段不为空的所有记录复制到另一个表中。 即使它看起来很简单,我也无法让它发挥作用。
这是我的代码:
INSERT INTO phonebook2 (company,zip,city,address,tags,phonetype,phonearea,phonenumber)
SELECT company,zip,city,address,tags,phonetype,phonearea,phonenumber
FROM phonebook WHERE phonenumber != null && phonenumber != "";
我没有得到任何错误, 但我得到“0行受影响”。 在手动搜索记录时,我确实看到了phonenumber的NULL值。
有什么建议吗?
**我尝试在没有WHERE部分的情况下运行相同的查询,它确实传输了所有记录。
答案 0 :(得分:5)
使用IS NOT NULL
代替!= null
。
来源:MySQL manual
答案 1 :(得分:2)
使用IS NOT NULL而不是!= null
答案 2 :(得分:1)
另一个选择是使用IS NOT NULL而不是
WHERE EXISTS (SELECT phonenumber
FROM phonebook)