mysql查询为空再查另一个_mysql-SQL IF SELECT查询为null,然后执行另一个查...

你可以做到的是这样的

>设置两个等于要执行的查询的变量.

>当第一个不为空时,将另一个变量设置为等于正确的查询.

>使用存储过程执行该查询.

存储过程:

DELIMITER $$

CREATE PROCEDURE `dynamic_query`(in input varchar(255))

BEGIN

SET @a := input;

PREPARE stmt FROM @a;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

END

$$

DELIMITER ;

您要执行的两个选择:

SET @A := "SELECT * FROM cfg_users JOIN cfg_ash ON cfg_users.iUserId = cfg_ash.iUserid WHERE iTeamId='0' AND sDisabled IS NULL AND iStatusId > 0 AND sDate = '2014-08-01' GROUP BY cfg_users.iUserId ORDER BY iStatusId, sName";

SET @B := "your other select here";

获得正确查询的定义:

SET @C := (

SELECT

CASE

WHEN EXISTS

( SELECT *

FROM cfg_users

JOIN cfg_ash ON cfg_users.iUserId = cfg_ash.iUserid

WHERE iTeamId='0'

AND sDisabled IS NULL

AND iStatusId > 0

AND sDate = '2014-08-01'

GROUP BY cfg_users.iUserId

ORDER BY iStatusId, sName

)

THEN @A

ELSE @B

END

);

执行声明:

CALL dynamic_query(@C);

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值