加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 数据库 > MySql > 正文

php – 将两个mysql查询合并为一个

发布时间:2020-12-05 03:37:55 所属栏目:MySql 来源:互联网
导读:组合这两个查询的正确语法是什么?SELECT clicks FROM clicksTable WHERE clicks 199 ORDER BY clicks ASC LIMIT 1 和SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1 我试过了:SELECT clicks FRO

组合这两个查询的正确语法是什么?

SELECT clicks FROM clicksTable WHERE clicks > 199 ORDER BY clicks ASC LIMIT 1

SELECT clicks FROM clicksTable ORDER BY clicks DESC LIMIT 1

我试过了:

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的使用不正确”.

编辑
另外,我希望结果返回一行.这样我就可以访问php中的值了

$row['nextclick'] and $row['topclick'] 

根据Simon的建议,我不应该使用UNION,因为我想返回一行数据 最佳答案 您不能在第一个SELECT中进行ORDER BY,然后UNION它.

编辑
但是你可以

apply ORDER BY or LIMIT to an individual SELECT,place the clause inside the parentheses that enclose the SELECT:

如在MySQL UNION documentation

(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);

编辑2
要返回数组

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;

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读