使用mysql時的坑

2021-10-04 22:26:33 字數 1744 閱讀 8734

你好! 這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器, 可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。

同樣的sql,5.6執行沒有問題,5.7執行沒有排序。

例子:select *

5.7explain 發現5.7版本的mysql在執行這條sql時缺少了乙個derived操作,通過查閱相關資料了解到mysql 5.7對子查詢進行了優化,認為子查詢中的order by可以進行忽略,只要derived table裡不包含如下條件就可以進行優化:

union clause

group by

distinct

aggregation

limit or offset

解決方法

select *

from (

select uuid,score, video_id videoid

from exam_record

where user_id = 『15014228111239455233』 and del_flag = 0 order by score desc,score is nulllimit 100)r

group by r.videoid;

select *

from (

selectdistinctuuid,score, video_id videoid

from exam_record

where user_id = 『15014228111239455233』 and del_flag = 0 order by score desc,score is null)r

group by r.videoid;

這個問題是從網上看到的

create table t(id int primary,c int) engine=innodb;

insert into t values(1,1),(2,2);

select * from t where c=2.1;

empty set

select count

(clock_count =

1) from table //條件不生效,有多少條有值的資料就顯示幾

select count

(clock_count =

1 or null) from table //符合預期

原因:count會統計不為空的資料,如果不加or null,count(clock_count = 1)去統計clock_count != 1的資料的時候,(clock_count = 1)的值相當於 false,會被count統計到資料裡,加上or null,那麼(clock_count = 1)的值相當於null,就不會統計到。

QT 使用QDataStream時遇到的坑

使用qt與go服務端進行通訊,每個資料報大小都以約定好結構為 len feature compress data 結果使用qdatastream進行新增資料時發現data資料開頭有亂碼,比如傳送12345結果服務端接收為 qt 傳送 如下 qbytearray socket packdata qst...

配置mysql環境時的幾個小坑

首先我們使用wget 進入解壓目錄後.scripts mysql install db執行安裝命令失敗提示缺少依賴 安裝libaio dev依賴包 sudo apt get install libaio dev首先切換超級使用者進入mysql,執行 grant all privileges on t...

MySQL8 0安裝時踩的坑

今早一起來,mysql workbench打不開,mysql也無法正常使用,都說重灌解決百分百的問題,我就直接卸了重灌了。解除安裝mysql需要解除安裝乾淨,我除了在360的軟體中心刪除外,還刪除了c盤programdata裡的mysql資料夾,programdata預設隱藏,如圖示勾選隱藏的專案可...