查询:
SELECT * FROM table
WHERE fieldA LIKE '%%'
AND fieldB LIKE '%%'
AND fieldC LIKE '%%'
仅返回已完成所有字段的记录。我的想法是它应该返回表中的所有记录。
'%%'实际上是否表示需要一个值?
UPDATE1:
感谢一些好的问题,找到了解决方案:
查询应该是:
SELECT * FROM table
WHERE if(fieldA IS NOT NULL,fieldA LIKE '%%',fieldA IS NULL)
...
答案 0 :(得分:10)
LIKE'%%'匹配任何字符串,即使是长度为零的字符串。您的查询结果是返回三个字段中包含字符串的所有行。
我的猜测是未完成的字段为NULL。也许你应该检查IS NOT NULL而不是LIKE'%%'?