第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

MySQL:不在GROUP BY中

MySQL:不在GROUP BY中

白豬掌柜的 2019-09-26 11:10:37
該站點(diǎn)產(chǎn)生結(jié)果,但是使用SELECT COUNT和SELECT查詢以及GROUP BY具有兩個(gè)不同的結(jié)果計(jì)數(shù)。這可能是由于phpmyadmin中顯示的錯(cuò)誤,而不是網(wǎng)站上的錯(cuò)誤。查詢:SELECT count(DISTINCT `name`) as `numrows` FROM `users` WHERE `verified` = '1'SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name` ORDER BY `count` DESC LIMIT 0, 25PhpMyAdmin提供以下錯(cuò)誤:1055-'main.users.type'不在GROUP BY中在閱讀MySQL文檔時(shí),我仍不清楚必須解決的問題。我似乎無法掌握這一點(diǎn)。
查看完整描述

3 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊


您需要有一個(gè)完整的小組:


SELECT `name`, `type`, `language`, `code` 

FROM `users` 

WHERE `verified` = '1' 

GROUP BY `name`, `type`, `language`, `code` 

ORDER BY `count` DESC LIMIT 0, 25

SQL92要求select子句中的所有列(聚合除外)都是group by子句的一部分。SQL99稍微放松了此限制,并指出select子句中的所有列在功能上必須依賴于group by子句。MySQL默認(rèn)情況下允許部分分組依據(jù),這可能會產(chǎn)生不確定的答案,例如:


create table t (x int, y int);

insert into t (x,y) values (1,1),(1,2),(1,3);

select x,y from t group by x;

+------+------+

| x    | y    |

+------+------+

|    1 |    1 |

+------+------+

即,為組x選擇了隨機(jī)y??梢酝ㄟ^設(shè)置@@ sql_mode來防止此行為:


set @@sql_mode='ONLY_FULL_GROUP_BY';

select x,y from t group by x; 

ERROR 1055 (42000): 'test.t.y' isn't in GROUP BY


查看完整回答
反對 回復(fù) 2019-09-26
?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

當(dāng)然,最好的解決方案是使用完整的GROUP BY表達(dá)式。

但是還有另一種解決方案,可以解決ONLY_FULL_GROUP_BY對的舊MySQL擴(kuò)展的阻塞GROUP BY。

SELECT name, 
       ANY_VALUE(type) type,
       ANY_VALUE(language) language,
       ANY_VALUE(code) code 
  FROM users  
 WHERE verified = '1' 
 GROUP BY name 
 ORDER BY count DESC LIMIT 0, 25

ANY_VALUE()顯式聲明MySQL不完整GROUP BY操作中曾經(jīng)隱含的內(nèi)容-服務(wù)器可以選擇任意值返回。


查看完整回答
反對 回復(fù) 2019-09-26
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

首先是要了解為什么會這樣。較早的版本使我們有些疏忽:雖然結(jié)果中完全列出了分組列的值(每個(gè)列均無例外),但其他選定列的值或多或少被省略了-但是代碼可以不會(不想)代表您告訴哪些人:

- Hey, MYSQL, list the families of the street - but add a first name as well to every row.- Okay sir, but shall I use the father's or the mother's or...? I'm a machine, give exact orders!

現(xiàn)在我們了解了原因,我們可以決定是否對其他列有偏好。采用

MAX() ASMIN() ASetc, works with strings, too

或者,如果確實(shí)是一樣的話,例如與分組值相關(guān)的非聚合值之間沒有區(qū)別,請使用

ANY_VALUE() AS

無論哪種方式,您都讓mysql知道您知道自己是“模棱兩可的”,但您實(shí)際上不想將重點(diǎn)放在除您分組的列之外的所有列上。


查看完整回答
反對 回復(fù) 2019-09-26
  • 3 回答
  • 0 關(guān)注
  • 884 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號