午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

關(guān)于MySQL group by的問題

瀏覽:192日期:2022-06-17 18:25:32

問題描述

表字段及數(shù)據(jù):idamountuser_idcreate_time110012016-10-11 10:59:332300022016-10-10 10:59:543325612016-10-09 11:00:164154612016-10-08 11:00:38

我想取每個(gè)user的第一條記錄,SQL:select * from test group by user_id.

結(jié)果:idamountuser_idcreate_time110012016-10-11 10:59:332300022016-10-10 10:59:54

然后我發(fā)現(xiàn)如果根據(jù)時(shí)間來排序,無論是順序還是逆序他都是這個(gè)結(jié)果,然后我猜想這個(gè)結(jié)果是不是根據(jù)id的大小來的,結(jié)果我改了id也是一樣,然后我猜想group by 結(jié)果是根據(jù)記錄添加順序來決定的,當(dāng)group by的字段出現(xiàn)重復(fù)時(shí),只會取第一條記錄,不知道這樣對不對,求解答?

問題解答

回答1:

不加create_time也一樣只是因?yàn)槟愕挠涗浿械捻樞蛞呀?jīng)是規(guī)律的了,什么排序也沒有的前提下,其實(shí)group by以后取出只是所有記錄中user_id第一次出現(xiàn)的記錄

回答2:

你所謂的“第一條記錄”是按照什么順序的“第一”呢?數(shù)據(jù)庫的表本身并不預(yù)設(shè)某種順序。假設(shè)你是要按照id排序且id無重復(fù):

select * from test where id in (select min(id) from test group by user_id);

應(yīng)該可以達(dá)到目的。

回答3:

group by是按主鍵順序展示的結(jié)果。要展示最新的amount需要在在組內(nèi)排序。

selet * from( select id,amount,user_id,create_time from test order by create_time desc) as t group by user_id回答4:

這樣理解可以說錯(cuò), 也可以說對.

說錯(cuò)是因?yàn)?按sql標(biāo)準(zhǔn), 如果sql里面有分組, 只有分組列才是有效的數(shù)據(jù).select * from test group by user_id. 這行表示, 只有user_id這一列才是真數(shù)據(jù), 別的列是假的, 即使選出來, 也不能用.

但是對于MySql, 他的行為就和你描述的一樣.

相關(guān)文章:
主站蜘蛛池模板: 免费久久久 | 综合婷婷| 香蕉视频最新网址 | 日韩视频一区二区在线观看 | 成人毛片一级 | 91网站在线免费看 | 在线成人观看 | 黄色一二三区 | 一级特黄aaa | 国产在线播放av | 亚洲一区二区三区在线免费观看 | 国产超碰在线观看 | 午夜影视在线观看 | 欧美视频免费在线 | 97超级碰| 国产91视频在线观看 | 国产第5页 | 欧美成人做爰大片免费看黄石 | 91成人免费看 | 四虎影视在线 | 永久免费在线观看视频 | 欧美一级做a爰片免费视频 天堂久久精品 | 欧美三级网站在线观看 | 午夜一级免费 | 天天干天天天 | 亚洲精品日韩av | 欧美成人亚洲 | 国产高清不卡 | 国产成人97精品免费看片 | 日韩一区免费 | 国产乱真实合集 | 久久综合九色 | 日本特黄一级 | 蜜臀久久精品久久久久 | 日韩欧美视频在线免费观看 | 成人精品视频在线 | 精品国产自| 国产成人专区 | 91精品久久久久久久99蜜桃 | 奇米成人网| 五月婷婷狠狠干 |