mysql的union all结果where查询条件中包含中文查询结果为空
mysql数据库版本8.0.32
怀疑是不是什么mysq版本bug,因为数据库重新装过了,可能版本改变了,之前sql是正常使用的
详情如下 :
SELECT NAME
FROM
(
SELECT NAME FROM a
UNION ALL SELECT NAME FROM b
UNION ALL SELECT NAME FROM c ) t
WHERE
t.NAME = '张三'
字符集都检查过了,只有NAME='中文' 查询结果为空(实际有值),NAME='1'数字或者NAME='q'字母就行。
测试后在不使用union all时没有问题。
目前只能在union all 连接的子句上添加条件使用:
SELECT NAME
FROM
(
SELECT NAME FROM a where name = '张三'
UNION ALL SELECT NAME FROM b where name = '张三'
UNION ALL SELECT NAME FROM c where name = '张三'
) t