保藏本站 保藏本站
真钱棋牌网主页 - 软件测验 - 常用手册 - 站长东西 - 技能社区
主页 > 数据库 > MySQL > 正文

主页 - PHP - 数据库 - 操作体系 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS指令 - jQuery - CSS款式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

MySQL中Union子句不支持order by的处理办法

本文实例叙述了MySQL中Union子句不支持order by的处理办法。共享给咱们供咱们参阅,具体如下:

我对DB知之甚少,这问题只在MySQL遇到,不知道其他DBMS是不是也如此。

问题是这样的,我打算在一个表里获得与某一行记载相邻的两行,而且想经过union一同取出来,所以这么写:

select id,title from subjects where id>#some_id# order by id limit 1
union
select id,title from subjects where id<#some_id# order by id limit 1

但呈现了过错提示“Incorrect usage of UNION and ORDER BY”。看来不能这么用union和order by,但这儿确实是需求order by的。很快,我想到了一个变通的写法:

select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) union
select id,title from subjects where id<#some_id# order by id limit 1

从经历上说,第二个子句该不会被union影响,可以用order by。所以把第一个子句包在一个括号里,这下应该就可以了。但是仍是有过错,提示“ Every derived table must have its own alias”。这儿的提示是需求给咱们括号里边生成的暂时表取一个别号,这个好办多了。所以改为:

select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) as t1 union
select id,title from subjects where id<#some_id# order by id limit 1

这条句子成功履行而且得到了正确的成果,在此写下来备忘。

更多关于MySQL相关内容感兴趣的读者可检查本站专题:《MySQL日志操作技巧大全》、《MySQL业务操作技巧汇总》、《MySQL存储进程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》

期望本文所述对咱们MySQL数据库计有所协助。

MySQL关于字符串中数字排序的问题剖析
本文实例叙述了MySQL关于字符串中数字排序的问题。共享给咱们供咱们参阅,具体如下:MySQL字符串信任咱们都不生疏,在MySQL字符串排序时经常会遇到

mysql完成兼并同一ID对应多条数据的办法
本文实例叙述了mysql完成兼并同一ID对应多条数据的办法。共享给咱们供咱们参阅,具体如下:如:CREATETABLE`c_classuser_tab`(`Id`int(11)NOTNULLAUTO_INCREMENT,`Classid

mysql之delete删去记载后数据库巨细不变
当DELETE后边跟条件的时分,则就会呈现这个问题deletefromtable_namewhere条件删去数据后,数据表占用的空间巨细不会变。不跟条件直接delete的时分。deletefrom

本周排行

更新排行

强悍的草根IT技能社区,这儿应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 ystekkfj.com. All Rights Rreserved  京ICP备05050695号