MYSQL5 7版本 排序後groupby無效

2021-08-28 14:00:34 字數 708 閱讀 3583

遇到問題:子查詢order by後,group by資料無效

需求:

取test表中建立時間最近的所有去重名稱:

select * from(

​ select * from test order by create_time desc

) t group by t.name

發現問題:

​mysql5.7之前版本測試,上述sql可滿足需求。5.7之後版本無效,mysql優化器過濾掉了order by,通過explain,不難發現,缺少乙個derived記錄。

解決:

​使mysql不進行內部優化。

​1、使用limit限制:

select * from(

select * from test order by create_time desc limit 4294967295

) t group by t.name

​ 2、使用臨時表限制:

select * from(

select * from test,(select 0) ta order by create_time desc

) t group by t.name

MySQL5 7版本安裝

解除安裝mariadb 1.rpm qa grep i mariadb 2.rpm e mariadb libs 5.5.52 1.el7.x86 64 nodeps 安裝mysql 1.tar xvf mysql 5.7.31 1.el7.x86 64.rpm bundle.tar 2.rpm i...

mysql5 7 版本登入問題

mysqld nt skip grant tables update mysql.user set authentication string root where user root flush privileges exit 這幾個命令就可以解決 關閉mysql 服務 在cmd 視窗1 輸入my...

Linux安裝mysql5 7版本

1.linux 安裝mysql 5.7順序 mysqladmin version 檢視版本號 mysql5.7 安裝在linux 中需要先初始化 mysqld initialize user mysql 檢視初始化密碼 cat var log mysqld.log 在 localhost 後面的為初...