前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql中的dual

mysql中的dual

作者头像
阿超
发布2022-08-17 19:40:00
2K0
发布2022-08-17 19:40:00
举报
文章被收录于专栏:快乐阿超

许多人都是由于本身软弱而做出问心有愧的事来的,并非都是蓄意背信弃义。——拉罗什富科

前两天看到项目中有这样一句SQL

代码语言:javascript
复制
SELECT (SELECT username FROM `user_2018` WHERE id = 1) username,(SELECT `password` FROM `user_2019` WHERE id = 1) `password` FROM DUAL;

最后这里有一个FROM DUAL

我没有在数据库中找到DUAL表,它是一个关键字

但我们就算去掉FROM DUAL,也能成功执行

代码语言:javascript
复制
SELECT (SELECT username FROM `user_2018` WHERE id = 1) username,(SELECT `password` FROM `user_2019` WHERE id = 1) `password`;

而且很多类似的例子

代码语言:javascript
复制
-- 查询当前时间
SELECT NOW() FROM DUAL;
-- 查询当前数据库版本号
SELECT VERSION() FROM DUAL;

我们去掉后面的FROM DUAL,仍然能得到同样的结果

网上很多博客文章写的DUAL可用于虚拟列名,效果如下

image-20210724234916670
image-20210724234916670

但我实际测试过,哪怕就是不加FROM DUAL,也是一样的

image-20210724234846425
image-20210724234846425

稍微了解了下,DUALORACLE中作为特殊的表存在

但在MYSQL中它好像确实没用,因此加不加FROM DUAL都无所谓。。。

个人推测可能是MYSQL中默认省略了FROM DUAL

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档