五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Mysql無法選取非聚合列的解決方法

發(fā)布日期:2022-03-19 10:32 | 文章來源:CSDN

1.

最近升級博客,給文章頁面底部增加了兩個按鈕,可以直接跳轉(zhuǎn)到上一篇和下一篇。

如下圖所示:

實現(xiàn)這個功能的難點(diǎn)在于:數(shù)據(jù)庫怎么選取出一條記錄的前后兩條相鄰的記錄?

2. 數(shù)據(jù)庫設(shè)計

關(guān)于我文章數(shù)據(jù)庫的設(shè)計如下圖所示:

可以看到,每條記錄的身份是索引Id。因為之前有很多文章記錄被刪除了,所以,Id并不是連續(xù)的。

如果當(dāng)前文章的索引值是33,那么可以通過以下命令來得到前后相鄰的 2 篇文章:

select * from passage where id in
(select
case
when SIGN(id - 32 )>0 THEN MIN(id)
when SIGN(id - 32 )<0 THEN MAX(id)
end
from passage
where id != 34
GROUP BY SIGN(id- 32 )
ORDER BY SIGN(id- 32 )
)
ORDER BY id;

3. 無法選取聚合列

在執(zhí)行上面命令時,Mysql給了我個: SELECT list is not in GROUP BY clause ... 的報錯。經(jīng)過 Google 得知,mysql 5.7以上,默認(rèn)啟動了only_full_group_by,MySQL 就會拒絕選擇列表、條件或順序列表引用的查詢。

以下是原文:

Reject queries for which the select list, HAVING condition, or ORDER BY list refer to nonaggregated columns that are neither named in the GROUP BY clause nor are functionally dependent on (uniquely determined by) GROUP BY columns. As of MySQL 5.7.5, the default SQL mode includes ONLY_FULL_GROUP_BY. (Before 5.7.5, MySQL does not detect functional dependency and ONLY_FULL_GROUP_BY is not enabled by default. For a description of pre-5.7.5 behavior, see the MySQL 5.6 Reference Manual.)

所以,我們應(yīng)該設(shè)置sql_mode中不包含only_full_group_by選項。MySQL 5.7.5后only_full_group_by成為sql_mode的默認(rèn)選項之一,這可能導(dǎo)致一些sql語句失效。

進(jìn)入 mysql 配置文件,在[mysqld]部分中添加以下配置,并且重啟 mysql 即可。

[mysqld]
# ... other config
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # delete 'only_full_group_by'
# ... other config

運(yùn)行本文第二部分的 mysql 的命令,結(jié)果如下圖所示:

4. 相關(guān)鏈接

only_full_group_by

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對本站的支持。

香港穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部