检查列是否为空或空

时间:2015-12-15 01:23:09

标签: mysql sql

有没有更好的方法来执行以下操作来检查列是否为空/空?

(v.file_name is not null and v.file_name != '' 
 and v.file_last_known_location is not null and v.file_last_known_location != '')

2 个答案:

答案 0 :(得分:1)

我认为这更清楚

COALESCE(v.file_name,'') != '' AND COALESCE(v.file_last_known_location,'') != ''

在某些系统上,这可能会对索引列表现更差(如@sgeddes注释)。

答案 1 :(得分:1)

我会说,即使当前查询看起来很笨拙,当您在file_namefile_last_known_location上有索引时,它也会执行建议的答案。

function子句中Where的使用将限制优化器使用Index。因此最好使用原始查询

(v.file_name is not null and v.file_name != '' 
 and v.file_last_known_location is not null and v.file_last_known_location != '')