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

mysql "group by"與"order by"的研究--分類中最新的內(nèi)容

 更新時(shí)間:2010年06月21日 12:31:07   作者:  
這兩天讓一個(gè)數(shù)據(jù)查詢難了。主要是對(duì)group by 理解的不夠深入。才出現(xiàn)這樣的情況
這兩天讓一個(gè)數(shù)據(jù)查詢難了。主要是對(duì)group by 理解的不夠深入。才出現(xiàn)這樣的情況
這種需求,我想很多人都遇到過。下面是我模擬我的內(nèi)容表
復(fù)制代碼 代碼如下:

CREATE TABLE `test` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`category_id` INT(10) NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
ROW_FORMAT=DEFAULT;
INSERT INTO `test` (`id`, `name`, `category_id`, `date`)
VALUES
(1, 'aaa', 1, '2010-06-10 19:14:37'),
(2, 'bbb', 2, '2010-06-10 19:14:55'),
(3, 'ccc', 1, '2010-06-10 19:16:02'),
(4, 'ddd', 1, '2010-06-10 19:16:15'),
(5, 'eee', 2, '2010-06-10 19:16:35');


我現(xiàn)在需要取出每個(gè)分類中最新的內(nèi)容
復(fù)制代碼 代碼如下:

select * from test group by category_id order by `date`

結(jié)果如下

明顯。這不是我想要的數(shù)據(jù),原因是msyql已經(jīng)的執(zhí)行順序是

引用

寫的順序:select ... from... where.... group by... having... order by..
執(zhí)行順序:from... where...group by... having.... select ... order by...

所以在order by拿到的結(jié)果里已經(jīng)是分組的完的最后結(jié)果。
由from到where的結(jié)果如下的內(nèi)容。

到group by時(shí)就得到了根據(jù)category_id分出來的多個(gè)小組


到了select的時(shí)候,只從上面的每個(gè)組里取第一條信息結(jié)果會(huì)如下

即使order by也只是從上面的結(jié)果里進(jìn)行排序。并不是每個(gè)分類的最新信息。
回到我的目的上 --分類中最新的信息
根據(jù)上面的分析,group by到select時(shí)只取到分組里的第一條信息。有兩個(gè)解決方法
1,where+group by(對(duì)小組進(jìn)行排序)
2,從form返回的數(shù)據(jù)下手腳(即用子查詢)

由where+group by的解決方法
對(duì)group by里的小組進(jìn)行排序的函數(shù)我只查到group_concat()可以進(jìn)行排序,但group_concat的作用是將小組里的字段里的值進(jìn)行串聯(lián)起來。
select group_concat(id order by `date` desc) from `test` group by category_id


再改進(jìn)一下
select * from `test` where id in(select SUBSTRING_INDEX(group_concat(id order by `date` desc),',',1) from `test` group by category_id ) order by `date` desc



子查詢解決方案
select * from (select * from `test` order by `date` desc) `temp`  group by category_id order by `date` desc


 

相關(guān)文章

  • Navicat中修改MySQL的編碼格式

    Navicat中修改MySQL的編碼格式

    打開?Navicat?for?MySQL?并連接到您的數(shù)據(jù)庫(kù)服務(wù)器,在左側(cè)的連接列表中,展開數(shù)據(jù)庫(kù),然后展開要更改字符集的表,選中要更改字符集的表,右鍵點(diǎn)擊并選擇?"設(shè)計(jì)表",在?"設(shè)計(jì)表"?窗口中,您將看到表的列表
    2023-10-10
  • sql中l(wèi)eft join的效率分析與提高效率方法

    sql中l(wèi)eft join的效率分析與提高效率方法

    網(wǎng)站隨著數(shù)據(jù)量與訪問量越來越大,訪問的速度變的越來越慢,于是開始想辦法解決優(yōu)化速度慢的原因,下面是對(duì)程序中一條sql的分析與提高效率的過程
    2018-03-03
  • 數(shù)據(jù)分析之ELT的基本概念

    數(shù)據(jù)分析之ELT的基本概念

    這篇文章主要介紹了數(shù)據(jù)分析之ELT的基本概念, ETL是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程,需要的朋友可以參考下
    2023-07-07
  • 數(shù)據(jù)庫(kù)基本概念面試必問

    數(shù)據(jù)庫(kù)基本概念面試必問

    這篇文章主要介紹了數(shù)據(jù)庫(kù)基本概念面試必問的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 如何判斷a、b、c三個(gè)字段同時(shí)為0則不顯示這條數(shù)據(jù)

    如何判斷a、b、c三個(gè)字段同時(shí)為0則不顯示這條數(shù)據(jù)

    有時(shí)候我們需要判斷當(dāng)a、b、c三個(gè)字段同時(shí)為0則不顯示,下面這個(gè)方法不錯(cuò),需要的朋友可以參考下
    2013-08-08
  • 分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的三要素

    分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的三要素

    大家好,本篇文章主要講的是分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的三要素,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • ACCESS轉(zhuǎn)SQLSERVER數(shù)據(jù)庫(kù)的注意事項(xiàng)

    ACCESS轉(zhuǎn)SQLSERVER數(shù)據(jù)庫(kù)的注意事項(xiàng)

    Access承重量太低,當(dāng)你考慮升級(jí)到SQL Server時(shí),并不只是個(gè)連接字符串需要改變,需要改變的還有很多
    2007-01-01
  • Spark SQL操作JSON字段的小技巧

    Spark SQL操作JSON字段的小技巧

    這篇文章主要給大家介紹了關(guān)于Spark SQL操作JSON字段的小技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spark sql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Navicat?Premium?15?linux?安裝與激活?ArchLinux?2022最新教程(完整激活版)

    Navicat?Premium?15?linux?安裝與激活?ArchLinux?2022最新教程(完整激活

    navicat?premium?mac是一款強(qiáng)大數(shù)據(jù)庫(kù)管理軟件,通過navicat?premium?15?用戶快速輕松地構(gòu)建,管理和維護(hù)您的數(shù)據(jù)庫(kù),結(jié)合了其他Navicat軟件使用更有意想不到的功能,這篇文章主要介紹了Navicat?Premium?15?linux?安裝與激活?ArchLinux?2022,需要的朋友可以參考下
    2023-01-01
  • navicat導(dǎo)入CSV文件詳細(xì)操作步驟

    navicat導(dǎo)入CSV文件詳細(xì)操作步驟

    通過Navicat我們可以很方便的完成備份和還原操作,下面這篇文章主要給大家介紹了關(guān)于navicat導(dǎo)入CSV文件的詳細(xì)操作步驟,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

泾川县| 玉林市| 大同县| 子长县| 南城县| 呈贡县| 苍南县| 汾阳市| 盐山县| 都安| 清丰县| 冷水江市| 永寿县| 达日县| 扶风县| 长宁县| 宜兰县| 沂南县| 乌拉特中旗| 文化| 垫江县| 巨野县| 广平县| 蒙阴县| 乌鲁木齐市| 资源县| 武汉市| 红原县| 天柱县| 同江市| 二连浩特市| 荥经县| 郸城县| 祁阳县| 成都市| 西和县| 泽州县| 闻喜县| 海安县| 沛县| 克拉玛依市|