mysql 中select now(); 是怎么执行的?没有指定FROM tablename?

mysql中 使用指令select now();就会获取当前时间日期。为什么没有from table,这种指令也能执行?

不指定表的时候,应该如何理解select呢?

阅读 4.5k
1 个回答

参考文档
now()是mysql内置函数,返回当前时间,而select可以不从表中获取数据。即使使用select now() from table,这个table也会被忽略,因为now()用不上

SELECT can also be used to retrieve rows computed without reference to any table.

For example:

mysql> SELECT 1 + 1;
        -> 2
You are permitted to specify DUAL as a dummy table name in situations where 
no tables are referenced:

mysql> SELECT 1 + 1 FROM DUAL;
        -> 2
DUAL is purely for the convenience of people who require that all SELECT statements 
should have FROM and possibly other clauses. 
MySQL may ignore the clauses. MySQL does not require FROM DUAL if no tables are referenced.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题