- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个表的 MySQL 数据库,每个表都有相同的结构。其结构为:
id INT(11) NOT NULL auto_increment, site VARCHAR(350) NOT NULL, votes_up BIGINT(9) NOT NULL, votes_down BIGINT(9) NOT NULL, PRIMARY KEY(id), UNIQUE (site)
下面的 PHP 代码打印出所有表中的每个唯一“站点”,并对所有表中的“votes_up”求和。然后,它按降序列出“site”的前 25 个值(基于“votes_up”总数)。
这段代码工作得很好,但我想根据创建时间按时间倒序顺序做完全相同的事情。我该怎么做?
提前致谢,
约翰
<?
mysql_connect("mysqlv10", "username", "password") or die(mysql_error());
mysql_select_db("bookfeather") or die(mysql_error());
$result = mysql_query("SHOW TABLES");
$tables = array();
while ($row = mysql_fetch_assoc($result)) {
$tables[] = '`'.$row["Tables_in_bookfeather"].'`';
}
//$subQuery = "SELECT site, votes_up FROM ".implode(" UNION ALL SELECT site, votes_up FROM ",$tables);
$subQueryParts = array();
foreach($tables as $table)
$subQueryParts[] = "SELECT site, votes_up FROM $table WHERE LENGTH(site)";
$subQuery = implode(" UNION ALL ", $subQueryParts);
// Create one query that gets the data you need
$sqlStr = "SELECT site, sum(votes_up) sumVotesUp
FROM (
".$subQuery." ) subQuery
GROUP BY site ORDER BY sum(votes_up) DESC LIMIT 25";
$result = mysql_query($sqlStr);
$arr = array();
echo "<table class=\"samples2\">";
while ($row = mysql_fetch_assoc($result)) {
echo '<tr>';
echo '<td class="sitename2"><a href="booklookup3.php?entry='.urlencode($row["site"]).'&searching=yes&search=search">'.$row["site"].'</a></td>';
echo '<td>'.$row["sumVotesUp"].'</td>';
echo '</tr>';
}
echo "</table>";
?>
最佳答案
正如评论中所述,您必须添加一列来存储创建行的时间。如果您要存储 UNIX 时间戳,则该列的类型可以是 INT
;如果您希望使用日期字符串,则该列的类型可以是 DATETIME
。另外,如果您不想这样做,您可以使用ORDER BY id DESC
,因为自动增量列最常见对应于时间顺序,但事实并非如此一个稳定的解决方案,因为当 AUTO_INCRMENT
值超出 INT
数据类型的范围时,它开始使用未使用的值(例如来自已删除的行)。
关于php - 按时间倒序从多个表中打印唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1332309/
我有这样的代码: Main 1 2 3 Another 4 5 我希望输出为: Main 3 2 1 Another 5 4 我正在尝试使用以下内容,但它无法正常工作: $.fn.reverseOrd
我在这个网站上找到了一个评论查询示例,它与我当前的数据库结构完美配合。 链接:How to make comment reply query in MYSQL? 接受的答案有效,但我想知道是否可以颠倒
我有带有字典列表(item0,item1,item2)的列表的Plist ..通常当我在屏幕上显示时..它按升序填充...item0 然后 item1 然后 item2......等等..我希望 Pl
我正在以相反的顺序使用回收站 View 来显示聊天记录。 如果聊天中只有一条消息,它会在底部显示消息(如电报)。但我需要从顶部显示它。 我被困在这一天了。谁能给我一个建议,让我以 Recyclervi
如何按数字从高到低对数组进行排序。 数组 ArrayList array1 = new ArrayList<>(); 类 public class TestClass{ public boole
欢迎, 我想知道是否可以在“按 desc 排序”排序中反转返回的数据,但我希望该数据以相反的顺序。 例如,我得到了带有值的表 ID 1 2 3 4 我愿意 按 ID 排序 ASC LIMIT 3我得到
我正在尝试在 FireFox 中模拟输入类型='number' 的逗号插入,因为它尚不支持它。天真地它在 Chrome 中工作。我让我的正则表达式开始工作...只是顺序不对,我需要将其反转。 http
我浏览了很多关于 z-index 的页面。这个例子应该在顶部显示棕色的数字列表(更高的 z-index?)而不是蓝色的文本框。 CSS 在此处的 HTML 中以便于调试: 我的理解是,只要两个 blo
从表中选择 id LIMIT 8, 3 结果在 8,9,10 但我需要 10,9,8 你怎么能做到这一点?如果您添加“ORDER BY id DESC”,它会得到 3,2,1 最佳答案 将您的查询放在
我想在使用 desc 后反转 SQL Server 中结果的顺序。例如: SELECT TOP 3 * FROM table ORDER BY id DESC 返回结果: 505 504 503 但是
我正在编写一条 Oracle SQL 语句来获取最近日期的值。如果我的表格如下所示: +============+=================+ | sv_version | sv_date_a
我正在编写一条 Oracle SQL 语句来获取最近日期的值。如果我的表格如下所示: +============+=================+ | sv_version | sv_date_a
我是一名优秀的程序员,十分优秀!