gpt4 book ai didi

php - 在Mysql上选择IF EXISTS THEN ELSE

转载 作者:行者123 更新时间:2023-11-29 01:28:30 24 4
gpt4 key购买 nike

我尝试了很多方法来解决这个问题,检查了很多网站,尝试了更多的例子,但还没有得到我想要的。我的 php 页面上的 sql 逻辑如下所示:

IF (EXISTS (SELECT * FROM suborders WHERE subId = 1))
THEN SELECT * FROM suborders WHERE subId = 1 //if exists just do this sql again
ELSE SELECT id FROM orders WHERE id = 1 LIMIT 1;

Mysql 在第一次查询时给出语法错误。所以,我也尝试在下面使用另一种方式:

delimiter //
create procedure test()
begin
IF EXISTS (SELECT * FROM suborders WHERE subId = 1) THEN
SELECT * FROM suborders WHERE subId = 1;
ELSE
SELECT id FROM orders WHERE id = 1 LIMIT 1;
END IF;
end //
delimiter ;

call test();

使用第二个查询 mysql 返回空结果,没有错误。其实,应该是有东西要取的……

最佳答案

IF EXISTS (SELECT * FROM suborders WHERE subId = 1 )
BEGIN
SELECT * FROM suborders WHERE subId = 1
END
ELSE
BEGIN
SELECT id FROM orders WHERE id = 1 LIMIT 1
END

完整存储过程:

DELIMITER //
CREATE PROCEDURE sp_select_suborders(IN `p_subId`)
IF EXISTS (SELECT * FROM suborders WHERE subId = p_subId )
BEGIN
SELECT * FROM suborders WHERE subId = p_subId
END
ELSE
BEGIN
SELECT id FROM orders WHERE id = p_subId LIMIT 1
END //
DELIMITER ;

用法:

$stmt = $db->prepare('CALL sp_select_suborders(?)');

关于php - 在Mysql上选择IF EXISTS THEN ELSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com