CREATE TABLE hits ( id int(11) NOT NULL auto_increment, articleid int(20) NOT NULL default '0', hits int(20) NOT NULL default '0', edate int(20) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM; 很重要吗?
用order by sum desc不可以吗? select articleid,SUM(hits) as sum from hits where (edate BETWEEN $dd AND $d ) group by articleid order by sum desc limit 0,10;
select articleid,SUM(hits) as sum from hits where (edate BETWEEN $dd AND $d ) group by articleid order by sum desc limit 0,10; 这个可以, select articleid,SUM(hits) as sum from hits where (edate BETWEEN $dd AND $d ) order by sum desc group by articleid limit 0,10; 这个就报错 哈哈 晓得咯! 谢了,马上结帐!
晕,结了,数组排序 If you have an array that contains output from a SQL SELECT statment and you want to sort the array on a column, you have to create a separate array containing the values of that column like so: //Get table output into $rows array $result = mysql_query("SELECT field1, field2 from table"); while ($rows[] = mysql_fetch_array($result)) {} //Sort on field2 foreach ($rows as $val) { $sortarray[] = $val['field2']; } array_multisort($rows, $sortarray); //Now, $rows is sorted on field2 If anyone knows an easier way to do this, please let us know!
id int(11) NOT NULL auto_increment,
articleid int(20) NOT NULL default '0',
hits int(20) NOT NULL default '0',
edate int(20) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;
很重要吗?
select articleid,SUM(hits) as sum from hits where (edate BETWEEN $dd AND $d ) group by articleid order by sum desc limit 0,10;
这个可以,
select articleid,SUM(hits) as sum from hits where (edate BETWEEN $dd AND $d ) order by sum desc group by articleid limit 0,10;
这个就报错 哈哈
晓得咯!
谢了,马上结帐!
If you have an array that contains output from a SQL SELECT statment and you want to sort the array on a column, you have to create a separate array containing the values of that column like so: //Get table output into $rows array
$result = mysql_query("SELECT field1, field2 from table");
while ($rows[] = mysql_fetch_array($result)) {} //Sort on field2
foreach ($rows as $val) {
$sortarray[] = $val['field2'];
}
array_multisort($rows, $sortarray); //Now, $rows is sorted on field2 If anyone knows an easier way to do this, please let us know!