<?
$tr_list = array();
$query="select * from member where fenlei in (1,2,3,4) order by id desc";
$result=mysql_query($query,$db);
while ($arr=mysql_fetch_array($result))
{
$tr_list[$arr['fenlei']] .="$arr[name]";
} echo "$tr_list[1]";
echo "$tr_list[2]";
echo "$tr_list[3]";
echo "$tr_list[4]";
?>以上代码会把四组所有数据全部输出,如何写每组数据都能输出10条?用 $query="select * from member where fenlei in (1,2,3,4) order by id desc Limit 0,10";
只输出最后一组10条,用 $query="select * from member where fenlei in (1,2,3,4) order by id desc Limit 0,40";
也会只输出最后一组40条,怎么写才能每组都输出10条?
$tr_list = array();
$query="select * from member where fenlei in (1,2,3,4) order by id desc";
$result=mysql_query($query,$db);
while ($arr=mysql_fetch_array($result))
{
$tr_list[$arr['fenlei']] .="$arr[name]";
} echo "$tr_list[1]";
echo "$tr_list[2]";
echo "$tr_list[3]";
echo "$tr_list[4]";
?>以上代码会把四组所有数据全部输出,如何写每组数据都能输出10条?用 $query="select * from member where fenlei in (1,2,3,4) order by id desc Limit 0,10";
只输出最后一组10条,用 $query="select * from member where fenlei in (1,2,3,4) order by id desc Limit 0,40";
也会只输出最后一组40条,怎么写才能每组都输出10条?
select * from member where fenlei in (2) order by id desc limit 0,10 union
select * from member where fenlei in (3) order by id desc limit 0,10 union
select * from member where fenlei in (2) order by id desc
select * from member where fenlei in (1) order by id desc limit 0,10 union
select * from member where fenlei in (2) order by id desc limit 0,10 union
select * from member where fenlei in (3) order by id desc limit 0,10 union
select * from member where fenlei in (4) order by id desc
select * from member where fenlei in (2) limit 0,10 union
select * from member where fenlei in (3) limit 0,10 union
select * from member where fenlei in (4)
select * from member where fenlei in (1,2,3,4) order by id desc Limit 10,10
select * from member where fenlei in (1,2,3,4) order by id desc Limit 20,10
select * from member where fenlei in (1,2,3,4) order by id desc Limit 30,10这样写试试
select * from (select * from member where fenlei in (1) order by id desc limit 0,10) as b union
select * from (select * from member where fenlei in (1) order by id desc limit 0,10) as c union
select * from (select * from member where fenlei in (1) order by id desc limit 0,10) as d用这句就可以了!不过就是不知道有没有更科学的做法
SQL codeselect * from (select * from member where fenlei in (1) order by id desc limit 0,10) as a union
select * from (select * from member where fenlei in (2) order by id desc limit 0,10) as b union
select * from (select * from member where fenlei in (3) order by id desc limit 0,10) as c union
select * from (select * from member where fenlei in (4) order by id desc limit 0,10) as d
SELECT * FROM member AS a WHERE
(SELECT count(*) FROM member AS b WHERE a.fenlei=b.fenlei AND b.id>a.id)<10
AND a.fenlei IN(1,2,3,4)
ORDER BY a.fenlei DESC,a.id ASC
比我这个简洁
select * from (select * from member where fenlei in (1) order by id desc limit 0,10) as a union
select * from (select * from member where fenlei in (2) order by id desc limit 0,10) as b union
select * from (select * from member where fenlei in (3) order by id desc limit 0,10) as c union
select * from (select * from member where fenlei in (4) order by id desc limit 0,10) as d
高手终于出现了,太感谢了,但我想倒序显示啊?order by id desc怎么写?
改成ORDER BY a.id DESC就可以了能不能帮注释一下所有代码的意思?看了云里雾里,虽然达到了效果,但不知道怎么实现的,原理?谢谢
还需要 yz='0'的才显示,不等于0的不显示,怎么插入到上面去?
原来的如下:
$query="select * from member where fenlei in (1,2,3,4) and yz='0' order by id desc";
$tr_list = array();
吗?好象加不加都能输出正确结果?