大概在mysql 5.1版本后才出现的dual,之前版本没有dual表。
mysql中使用select * from dual会报1096错误。
oracle中会返回X
select express [from dual];
mysql总是作为返回该表达式值的普通select语句执行,返回一行记录的结果集,from dual 对mysql来说根本就是摆设!而oracle里该句必须有from dual;否则报错!
mysql from dual后面可以增加条件,控制其返回结果。
select express from dual where 0=2;
mysq 和 oracle的行为一致:该句就如同你认为的正常表那样——会先计算where的条件,再行计算express;这里的where条件会决定expres是否会返回!