SQL语句的嘛~
以时间排序、分组、LIMIT 2 不就行了?
以时间排序、分组、LIMIT 2 不就行了?
解决方案 »
- 还是那根据IP获取地址用正则切割问题
- 不知道哪里错了,快崩溃了
- 这条sql怎么改.....
- 嵌套的函数会不会占用栈空间太大?
- 請問如何處理file_get_contents得到的數據
- 请问PHP中怎么分页?(最简单的,不用函数)
- php怎么调用一个c#的dll啊,急啊!
- 比如说我的域名是http://www.hq.com 一个用户的注册名是user,我如何做才能让这个用户通过http://user.hq.com来访问他自己的页面 (有自己
- 调用上级的上级目录中的文件问题
- php 的设置问题!!
- 将目录下文件打包
- (50分求助)PHP执行遇到 Warning: Cannot modify header information,请教大家解决办法
想了一上午,实在想不出怎么用sql处理,就用php处理的。我的处理方法,查询一次数据库。
MYSQL数据库,求一SQL语句,每个类别取最新一条信息。表一: data_class(分类表,有两个字段)字段: ID ClassName
内容: 1 类别名一
2 类别名二
3 类别名三
4 类别名四表二: data_news(内容表,有四个字段,字段BigClass对应data_class表的ID字段)字段: ID Title BigClass PostTime
内容: 1 AAAAA 2 2007-02-01
2 BBBBB 1 2007-03-04
3 CCCCC 1 2007-04-05
4 DDDDD 3 2007-04-05
5 EEEEE 4 2007-04-05
6 FFFFF 3 2007-04-06
7 IIIII 2 2007-04-07我想按录入时间PostTime倒序,查类别BigClass为(1,2,3)这3个类的信息,每个类的信息只查最新两条。
如果mysql5.0以上或者sqlserver,可以用联查实现
select * from 表名 a
where 主键名 in (select top 2 主键名 from 表名 b where b.分类字段名=a.分类字段名) order by 分类字段名否则只能用循环,两次查找数据库了
function bulidlist($onekid,$lines=2){ …… $result=mysql_query("select * from tvlist where onekid=$onekid order by threekid,tvid desc");
while ($row=mysql_fetch_array($result)){
if($type[3]!=$row['threekid']){
$type[3]=$row['threekid'];
$n=0;
}else{
$n++;
if($n>$lines-1)continue;
}
……
}
循环查询分类的TOP2条记录。。
$result=mysql_query("SELECT BigClass FROM BigClass ORDER BY ID DESC");
while ($row=mysql_fetch_array($result)){
$sql = "select * from tvlist where onekid=$row['BigClass'] order by threekid,tvid desc LIMIT 0,2";
.....
}
我上面那段代码,bulidlist函数的第一个参数$onekid是一级分类的id,这个一级分分类又有2级分类,我写的函数的意思是每个2级分类提取2条记录。如果没有只有1级分类,完全可以:
function bulidlist($lines=2){ …… $result=mysql_query("select * from tvlist order by threekid,tvid desc");
while ($row=mysql_fetch_array($result)){
if($type!=$row['threekid']){
$type=$row['threekid'];
$n=0;
}else{
$n++;
if($n>$lines-1)continue;
}
……
}不过,还是想知道,如何用sql语句实现
where ID in (select ID from data_news b where b.BigClass=a.BigClass order by PostTime DESC LIMIT 0,2) order by BigClass试试这个
$page 从0计数
想从1技术
把结果-2!