mysql最新版與mysql5.6的兼容問題


最近公司在給別的企業打了一個項目,在公司本地使用的是mysql 5.6,但是搭建的項目的mysql版本是最新版5.7以后吧,所以有些sql在執行上出了一點問題

目前發現的是:

1:

在5.6版本下先order by 再group by 會取order by之后的數據的第一條,但是在5.7版本下mysql會自動優化,忽略order by 條件,直接分組查詢。

解決方案:在order by 后面加上limit 1000

 例子:全部數據如下

 

 在5.6版本情況下在這種情況分組可以發現是分組之后排序:

在mysql5.7版本情況下排序是被直接優化忽略掉的

解決方法加上紅框中任意一句話,達到預期

 

 

2:

5.6版本下是可以更新或者插入表數據時使用子查詢 插入或者更新的,但是在5.7版本下會出現  You can't specify target table 'kq_worker' for update in FROM clause 的錯誤,需要在把子查詢的數據再select之后再插入

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM