最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql無(wú)法選取非聚合列的解決方法

 更新時(shí)間:2018年09月05日 16:50:27   作者:GodBMW  
這篇文章主要給大家介紹了關(guān)于Mysql無(wú)法選取非聚合列的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. 前言

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

如下圖所示:

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

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

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

 

可以看到,每條記錄的身份是索引Id。因?yàn)橹坝泻芏辔恼掠涗洷粍h除了,所以,Id并不是連續(xù)的。

如果當(dāng)前文章的索引值是33,那么可以通過(guò)以下命令來(lái)得到前后相鄰的 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. 無(wú)法選取聚合列

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

以下是原文:

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選項(xiàng)。MySQL 5.7.5后only_full_group_by成為sql_mode的默認(rèn)選項(xiàng)之一,這可能導(dǎo)致一些sql語(yǔ)句失效。

進(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é)

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

相關(guān)文章

最新評(píng)論

上栗县| 长葛市| 青河县| 同心县| 谢通门县| 陆良县| 清镇市| 枣阳市| 清涧县| 四平市| 安泽县| 兰考县| 名山县| 望谟县| 镶黄旗| 和林格尔县| 梨树县| 静乐县| 汾西县| 乳源| 若羌县| 喀喇| 上思县| 宁阳县| 扬中市| 翁牛特旗| 曲周县| 桐柏县| 固安县| 谷城县| 沁水县| 垦利县| 荃湾区| 建阳市| 新河县| 怀宁县| 双桥区| 纳雍县| 乌恰县| 峨眉山市| 昌图县|