MySQL 5.6 中文本列的 mysql 子选择不返回结果

标签 mysql subquery mysql-5.6

我有一个如下所示的审核查询,用于审核 MySQL 中用户的表级权限:

SELECT -- the list of privileges for tables
mt.host `host`,
mt.user `user`,
CONCAT(mt.Db, '.', mt.Table_name) `Tables`,
REPLACE(mt.Table_priv, ',', ', ') AS `Privileges`
FROM
mysql.tables_priv mt
WHERE
mt.Table_name IN
(SELECT
DISTINCT
t.table_name `tables`
FROM
information_schema.tables AS t
WHERE
t.table_type IN
('BASE TABLE', 'SYSTEM VIEW', 'TEMPORARY', '') OR
t.table_type <> 'VIEW' AND
t.create_options IS NOT NULL
)

在我从 MySQL 5.5 升级到 MySQL 5.6 之前,查询一直运行良好。现在不行了。 MySQL 5.6 中在文本列上使用子 SELECT 是否存在某种问题?

最佳答案

看起来这可能是你的问题: https://bugs.mysql.com/bug.php?id=77191 使用底部的解决方法,我能够让它工作。

set optimizer_switch='semijoin=off';

关于MySQL 5.6 中文本列的 mysql 子选择不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558809/

相关文章:

php - 无法连接到本地MySQL服务器

mysql - 优化 JOIN 子查询中的 WHERE 子查询

MySQL JOIN 不使用 < > 运算符过滤 WHERE 子句,因为从 MySQL 5.6 -> 5.7 移动

python - 如何在 Mysql Python 连接器中使用一个转义参数

mysql - 如何在 OSX Mojave 上安装 MySQL 5.6?

mysql - 如何选择特定值并将其加入第一个结果集

PHP - 帮助我从我的数据库中的这个序列化值数组中获取值

MYSQL 子查询需要返回多行,父查询的每个结果 LIMIT 5

通过主查询值提取 MySQL JSON 路径

php - MySQL 选择以 yyyy-mm-dd 作为日期的特定年份或年份月份行