MySQL下的select 1 from dual
DUAL
单纯是为那些要求所有SELECT
语句应该有FROM
或者其他子句的人们提供便利。MySQL可能忽略这个子句。
简单来说,一般的查询语句的格式是:
select col1,col2 from table1;
因此,为了保持这样的习惯,我们在使用常量语法或系统语法的时候,会在from 后面带上dual:
select xx from dual;
当然,MySQL不要求强制使用FROM DUAL,可以省略:
也可以简写成select 1
注意:在oracle中不能省略 from dual
这样的语法有什么用?
一般来说是为了提供一个常量或某个值,这样不需要使用具体的表。
比如我想在某个子句中获取一个值的计算之和:
SELECT 1+3 FROM DUAL;
结果:
又或者想获取系统的时间:
SELECT NOW() FROM DUAL;
注意:mysql下 select * from dual;
会报错,不能用*号: