2016-11-17 79 views
1

我想跳过MySQL中的空白数据。排除某些字段的NULL或EMPTY值

我的示例查询将不工作:

SELECT * FROM burger WHERE mayonnaise=1 AND pickle<>'.$yon.' AND ketchup IS NOT NULL AND ketchup<> '' ORDER BY RAND() LIMIT 5 

我想跳过被存储为空白数据。

id  mayonnaise pickle ketchup   
1  1    y 
2  1    n  1 
3  1    y 
4  1    y 
5  1    y  1 
+0

你有空格,有没有可能?你可以尝试'番茄酱不是空和TRIM(番茄酱)<>''' –

回答

-1

尝试正则表达式:SELECT * FROM burger WHERE mayonnaise=1 AND pickle<>'.$yon.' AND ketchup REGEXP '[0-9]+' ORDER BY RAND() LIMIT 5,假设ketchup只有数值。这也会过滤掉非数字(和小数)的值,所以取决于ketchup的数据类型。

1

我会做以下同时处理Null和空值:

trim(coalesce(ketchup, ''))<>''