我在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")
答案 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明显可见: