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

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

 更新時間:2010年06月21日 12:31:07   作者:  
這兩天讓一個數(shù)據(jù)查詢難了。主要是對group by 理解的不夠深入。才出現(xiàn)這樣的情況
這兩天讓一個數(shù)據(jù)查詢難了。主要是對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)在需要取出每個分類中最新的內(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時就得到了根據(jù)category_id分出來的多個小組


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

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

由where+group by的解決方法
對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ù)庫服務(wù)器,在左側(cè)的連接列表中,展開數(shù)據(jù)庫,然后展開要更改字符集的表,選中要更改字符集的表,右鍵點擊并選擇?"設(shè)計表",在?"設(shè)計表"?窗口中,您將看到表的列表
    2023-10-10
  • sql中l(wèi)eft join的效率分析與提高效率方法

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

    網(wǎng)站隨著數(shù)據(jù)量與訪問量越來越大,訪問的速度變的越來越慢,于是開始想辦法解決優(yōu)化速度慢的原因,下面是對程序中一條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ù)庫基本概念面試必問

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

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

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

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

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

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

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

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

    Spark SQL操作JSON字段的小技巧

    這篇文章主要給大家介紹了關(guān)于Spark SQL操作JSON字段的小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spark sql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(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ù)庫管理軟件,通過navicat?premium?15?用戶快速輕松地構(gòu)建,管理和維護(hù)您的數(shù)據(jù)庫,結(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

最新評論

宁远县| 平武县| 大连市| 密云县| 夏津县| 故城县| 西盟| 沭阳县| 西丰县| 资中县| 通江县| 南部县| 盈江县| 麻城市| 龙州县| 姚安县| 东海县| 武安市| 仙桃市| 定结县| 新宁县| 安远县| 墨脱县| 五常市| 达日县| 柳林县| 胶南市| 公安县| 从江县| 柞水县| 无极县| 行唐县| 襄汾县| 晋江市| 芜湖市| 德化县| 舞阳县| 南皮县| 门源| 安化县| 丰城市|