Put*_*aKg 5 php mysql sql database union
组合这两个查询的正确语法是什么?
SELECT clicks FROM clicksTable WHERE clicks > 199 ORDER BY clicks ASC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
和
SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
我试过了:
SELECT clicks FROM clicksTable WHERE clicks > 199 ORDER BY clicks ASC LIMIT 1
UNION
SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
但我得到"UNION和ORDER BY的使用不正确".
编辑 此外,我希望结果返回一行.这样我就可以访问php中的值了
$row['nextclick'] and $row['topclick']
Run Code Online (Sandbox Code Playgroud)
根据Simon的建议,我不应该使用UNION,因为我想返回一行数据
Sim*_*tin 15
你不能ORDER BY在你的第一个SELECT然后UNION它.
编辑
但是你可以
将ORDER BY或LIMIT应用于单个SELECT,将子句放在括起SELECT的括号内:
(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);
Run Code Online (Sandbox Code Playgroud)
然后,你的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);
Run Code Online (Sandbox Code Playgroud)
编辑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;
Run Code Online (Sandbox Code Playgroud)