返回MYSQL QUERY INVERSED

时间:2014-07-11 16:40:45

标签: php mysql

我在mysql中有这个查询,有人知道如何返回反向查询吗?

mysql_query("
 SELECT * FROM batepapo 
 WHERE tipo='$t' && lang='$l' 
 ORDER BY id DESC LIMIT 0,100
");

现在正确的代码是

SELECT s.* FROM ( 
      SELECT t.* FROM batepapo
      t WHERE t.tipo='$t' AND t.lang='$l' 
      ORDER BY t.id DESC LIMIT 0,100) 
      AS s ORDER BY s.id")

3 个答案:

答案 0 :(得分:3)

一种选择是将现有查询用作内联视图查询,外部查询可以对结果重新排序。

举个例子:

SELECT s.*
  FROM ( SELECT t.* 
           FROM batepapo t
          WHERE t.tipo='fooval' 
            AND t.lang='langval' 
          ORDER BY t.id DESC
          LIMIT 0,100
       ) s
 ORDER BY s.id

使用联合语法:

( SELECT t.* 
    FROM batepapo t
   WHERE t.tipo='fooval' 
     AND t.lang='langval' 
   ORDER BY t.id DESC
   LIMIT 0,100
) ORDER BY id

我有义务添加一些建议。 1)考虑您的现有代码可能受SQL注入漏洞的影响(即我们没有看到对mysql_real_escape_string函数的任何调用。)和2)不推荐使用mysql_接口,新代码应使用PDO或mysqli界面。

答案 1 :(得分:0)

的mysql_query("  SELECT * FROM batepapo  在哪里tipo =' $ t' &安培;&安培;郎=' $升'  ORDER BY id ASC LIMIT 0,100 &#34);

答案 2 :(得分:0)

只是为了澄清我在spencer7593的答案上说的话......你也可以写这样的查询。

使用联合语法:

(SELECT t.* 
 FROM batepapo t
 WHERE t.tipo='fooval' 
    AND t.lang='langval' 
 ORDER BY t.id DESC
 LIMIT 0,100) 
 ORDER BY id

基本上你只需要选择然后再订购。这看起来似乎不起作用,并且没有在MySQL中记录,但是从grammar明显可见: