MYSQL - 使用%%使用LIKE的SELECT查询返回不正确的值

Joh*_*n M 1 mysql sql

查询:

SELECT * FROM table
  WHERE fieldA LIKE '%%' 
  AND fieldB LIKE '%%' 
  AND fieldC LIKE '%%' 
Run Code Online (Sandbox Code Playgroud)

这仅返回已完成所有字段的记录.我的想法是它应该返回表中的所有记录.

'%%'实际上是否代表需要一个值?

UPDATE1:

感谢一些好的问题,找到了解决方案:

查询应该像:

SELECT * FROM table
  WHERE if(fieldA IS NOT NULL,fieldA LIKE '%%',fieldA IS NULL)
  ...
Run Code Online (Sandbox Code Playgroud)

Mat*_*nes 10

LIKE'%%'匹配任何字符串,即使是长度为零的字符串.您的查询结果是返回三个字段中包含字符串的所有行.

我的猜测是,未完成的字段为NULL.也许你应该检查IS NOT NULL而不是LIKE'%%'?