无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻动态 > 行业新闻 >

mysql "group by"与"order by&qu

时间:2021-03-01 03:38来源:未知 作者:jianzhan 点击:
这几天让一数量据查寻难了。关键是对group by 了解的不足深层次。才出現那样的状况 这类要求,我觉得许多人都碰到过。下边就是我仿真模拟我的內容表 拷贝编码 编码以下:CREATE TABL
这几天让一数量据查寻难了。关键是对group by 了解的不足深层次。才出現那样的状况
这类要求,我觉得许多人都碰到过。下边就是我仿真模拟我的內容表
拷贝编码 编码以下:
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, ':37'),
(2, 'bbb', 2, ':55'),
(3, 'ccc', 1, ':02'),
(4, 'ddd', 1, ':15'),
(5, 'eee', 2, ':35');


现在我必须取下每一个归类中全新的內容
拷贝编码 编码以下:
select * from test group by category_id order by `date`

結果以下

显著。我觉得就是我要想的数据信息,缘故是msyql早已的实行次序是


写的次序:select ... from... where.... group by... having... order by..
实行次序:from... where...group by... having.... select ... order by...

因此在order by取得的結果里早已是排序的完的最终結果。
由from到where的結果以下的內容。

到group by时就获得了依据category_id分出去的好几个工作组


来到select的情况下,只从上边的每一个组里取第一条信息内容結果会以下

即便order by也仅仅从上边的結果里开展排列。其实不是每一个归类的全新信息内容。
返回我的目地上 --归类中全新的信息内容
依据上边的剖析,group by到select时只取到排序里的第一条信息内容。有2个处理方式
1,where+group by(对工作组开展排列)
2,从form回到的数据信息着手脚(即用子查寻)

由where+group by的处理方式
对group by里的工作组开展排列的涵数我只查出group_concat()能够开展排列,但group_concat的功效是将工作组里的字段名里的值开展串连起來。
select group_concat(id order by `date` desc) from `test` group by category_id

再改善一下
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


(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信