php - 不能 ORDER BY 或 DESC 顺序 MySQLi

标签 php mysql

我希望我不是太急于求成,我尝试使用 SQLYog 和其他一些应用程序来构建查询,但让我们面对现实吧,没有什么能比得上你们所有人的专业知识。所以这是我的问题: 是否可以按查看次数最多的方式(vistas.cuenta)和 DESC 对查询结果进行排序?您看到vistas(viewed)是php-mysql存储文章时间的表查看(在名为 cuenta(count) 的列上),现在它正在工作,但它以联合的顺序显示它们。在远景表上,我存储了文章的 ID 和一个包含每个表的表名的列。

在两张表的情况下会是这样。

SELECT ciencia.id,ciencia.titulo,vistas.cuenta
FROM vistas, ciencia
WHERE vistas.id_pag = ciencia.id
AND vistas.seccion = ciencia.tabla
ORDER BY vistas.cuenta

那个(上面的查询)工作完美,但它不适用于下面的查询。

include("connection.php");
$data = "
SELECT ciencia.id,ciencia.titulo,vistas.cuenta FROM vistas, ciencia WHERE vistas.id_pag = ciencia.id AND vistas.seccion = ciencia.tabla
UNION  SELECT cultura.id,cultura.titulo,vistas.cuenta FROM vistas, cultura WHERE vistas.id_pag = cultura.id AND vistas.seccion = cultura.tabla
UNION  SELECT deportes.id,deportes.titulo,vistas.cuenta FROM vistas, deportes WHERE vistas.id_pag = deportes.id AND vistas.seccion = deportes.tabla
UNION  SELECT economia.id,economia.titulo,vistas.cuenta FROM vistas, economia WHERE vistas.id_pag = economia.id AND vistas.seccion = economia.tabla
UNION  SELECT internacionales.id,internacionales.titulo,vistas.cuenta FROM vistas, internacionales WHERE vistas.id_pag = internacionales.id AND vistas.seccion = internacionales.tabla
UNION  SELECT migracion.id,migracion.titulo,vistas.cuenta FROM vistas, migracion WHERE vistas.id_pag = migracion.id AND vistas.seccion = migracion.tabla
UNION  SELECT nacionales.id,nacionales.titulo,vistas.cuenta FROM vistas, nacionales WHERE vistas.id_pag = nacionales.id AND vistas.seccion = nacionales.tabla
UNION  SELECT regionales.id,regionales.titulo,vistas.cuenta FROM vistas, regionales WHERE vistas.id_pag = regionales.id AND vistas.seccion = regionales.tabla
UNION  SELECT politica.id,politica.titulo,vistas.cuenta FROM vistas, politica WHERE vistas.id_pag = politica.id AND vistas.seccion = politica.tabla
";
$extractor = $mon -> query($data);
while($fila = mysqli_fetch_array( $extractor ))
{ print $fila['id'].' seccion '.$fila['titulo'].' - '.$fila['cuenta'].'<br>'; }

最佳答案

只需将您的查询包装到另一个 SELECT 中并对结果排序:

SELECT
*
FROM
(SELECT ciencia.id,ciencia.titulo,vistas.cuenta FROM vistas, ciencia WHERE vistas.id_pag = ciencia.id AND vistas.seccion = ciencia.tabla
UNION  SELECT cultura.id,cultura.titulo,vistas.cuenta FROM vistas, cultura WHERE vistas.id_pag = cultura.id AND vistas.seccion = cultura.tabla
UNION  SELECT deportes.id,deportes.titulo,vistas.cuenta FROM vistas, deportes WHERE vistas.id_pag = deportes.id AND vistas.seccion = deportes.tabla
UNION  SELECT economia.id,economia.titulo,vistas.cuenta FROM vistas, economia WHERE vistas.id_pag = economia.id AND vistas.seccion = economia.tabla
UNION  SELECT internacionales.id,internacionales.titulo,vistas.cuenta FROM vistas, internacionales WHERE vistas.id_pag = internacionales.id AND vistas.seccion = internacionales.tabla
UNION  SELECT migracion.id,migracion.titulo,vistas.cuenta FROM vistas, migracion WHERE vistas.id_pag = migracion.id AND vistas.seccion = migracion.tabla
UNION  SELECT nacionales.id,nacionales.titulo,vistas.cuenta FROM vistas, nacionales WHERE vistas.id_pag = nacionales.id AND vistas.seccion = nacionales.tabla
UNION  SELECT regionales.id,regionales.titulo,vistas.cuenta FROM vistas, regionales WHERE vistas.id_pag = regionales.id AND vistas.seccion = regionales.tabla
UNION  SELECT politica.id,politica.titulo,vistas.cuenta FROM vistas, politica WHERE vistas.id_pag = politica.id AND vistas.seccion = politica.tabla
) a
ORDER BY
cuenta DESC

关于php - 不能 ORDER BY 或 DESC 顺序 MySQLi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11877222/

相关文章:

php - 试图使用 php 查找年份中每个日期的平均值?

php5-fpm child 和请求

php - 加速ajax/javascript,目前检索数据时滞后太多。一定有更好的方法

php - POST 请求中的字符编码错误

mysql - 在子查询中再次过滤

php - 如何使用 mysqli_error() 显示错误行?

php - 在本地主机中打开 10 月 cms

mysql - Cloudcontrol 上的 Laravel MySQL 连接

mysql - 使用另一列中的条件字符串填充列

MYSQL 错误 #1072 - XAMPP、phpmyadmin 的表中不存在键列 'id '