phpMyAdmin查询中NULL值结果未显示的原因及解决方法
问题原因与解决办法
原因
SQL里的NULL代表未知值,它和任何操作符(包括NOT LIKE)进行比较的结果都是UNKNOWN,而WHERE子句只会保留判断结果为TRUE的行,因此estado字段为NULL的记录会被过滤,不会出现在查询结果里。
解决办法
需要在条件里明确包含estado IS NULL的情况,同时因为你是精确匹配而非模糊匹配,用NOT IN替代两个NOT LIKE会更简洁高效。修改后的完整查询语句如下:
SELECT * FROM `wp_AAAedubot` WHERE celular IS NOT NULL AND celular NOT LIKE 'Robot-%' AND (estado NOT IN ('entregado', 'cancelado') OR estado IS NULL) ORDER BY `wp_AAAedubot`.`time` DESC
注:原语句里的WHERE celular等价于celular IS NOT NULL,明确写出来可读性更好。
内容的提问来源于stack exchange,提问作者Edu Rafael
相关产品推荐
相关产品推荐

