日期:2014-05-16  浏览次数:20686 次

mysql if
mysql> select if(1,(select id from users),(select phone from users));
ERROR 1242 (21000): Subquery returns more than 1 row

需求:如果condition 为true,则执行sql语句1,否则执行sql语句2,mysql能写成这样的语句吗?存储过程除外。

------解决方案--------------------
除非返回1个值,否则用SP
------解决方案--------------------
一句sql不能实现 未必需要存储过程 写多条sql即可
------解决方案--------------------
这样写不行吗
SQL code

select 
  if(1,id,phone)
from users

------解决方案--------------------
引用select
if(1,id,phone)
from users