组合这两个查询的正确语法是什么?
SELECT clicks FROM clicksTable WHERE clicks > 199 ORDER BY clicks ASC LIMIT 1
and
SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1
I tried:
SELECT clicks FROM clicksTable WHERE clicks > 199 ORDER BY clicks ASC LIMIT 1
UNION
SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1;
但我得到“UNION 和 ORDER BY 的错误使用”。
EDIT此外,我希望结果在一行中返回。这样我就可以访问 php 中的值,例如
$row['nextclick'] and $row['topclick']
根据西蒙的建议,我不应该使用 UNION 因为我想返回单行数据
你不能ORDER BY
在你的第一个SELECT
进而UNION
it.
Edit
不过你可以
将 ORDER BY 或 LIMIT 应用于单个 SELECT,将子句放在包含 SELECT 的括号内:
如在MySQL UNION 文档 http://dev.mysql.com/doc/refman/5.1/en/union.html
(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);
这使得你的 SQL
(SELECT clicks FROM clicksTable WHERE clicks > 199 ORDER BY clicks ASC LIMIT 1)
UNION
(SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1);
Edit 2
返回array
SELECT (SELECT clicks
FROM clicksTable
WHERE clicks > 199
ORDER BY clicks ASC
LIMIT 1) AS NextClick,
(SELECT clicks
FROM clicksTable
ORDER BY clicks DESC
LIMIT 1) AS TopClick;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)