无法订购或以DESC命令MySQLi

时间:2012-08-09 05:20:20

标签: php mysql

我希望自己不会咄咄逼人,我尝试使用SQLYog和其他一些应用程序进行查询构建,但让我们面对它,没有什么比你们所有人的专业知识更好。所以这是我的问题: 是否可以按照最常查看(vistas.cuenta)和DESC的顺序排序此查询的结果?您看到vistas(已查看)是php-mysql存储文章的时间量的表查看(在名为cuenta(count)的列上),现在它正在工作,但它按照联盟的顺序呈现它们。在vistas表上,我存储了文章的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>'; }

2 个答案:

答案 0 :(得分:3)

将您的查询包装到另一个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

答案 1 :(得分:-3)

使用ORDER BY

时,您无法使用UNION