Хранимая процедура MYSQL, оператор if, ifnull - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать хранимую процедуру с mysql. Идея состоит не в том, чтобы проверить, является ли первый запрос пустым или нет, и сделать это, если это не так, или сделать второй, если первый запрос пуст.

Мой код, упрощенная версия.

DELIMITER //

CREATE PROCEDURE HFTester(idTest INT)
BEGIN 
    IF (SELECT * FROM `foo` WHERE id = idTest) != NULL
    THEN (SELECT * FROM `foo` WHERE id = idTest;)
    ELSE (SELECT * FROM `bar` WHERE id = idTest;)
    END IF;
END //

DELIMITER;  

Процедура сохранена, но когда я ее выполняю, я получаю пустой результат.

Итак, я искал в Интернете и нашел ifnull .

Затем я попытался применить его к своему делу:

DELIMITER //

CREATE PROCEDURE HFTester(idFiche INT)
BEGIN 
    SELECT IFNULL(
            (SELECT * FROM `foo` WHERE id = idTest;),
            (SELECT * FROM `bar` WHERE id = idTest;)
        );
END //
DELIMITER;

Я почти уверен, что IFNULL не может работать, но есть ли способ сделать это, если оператор в MySQL, или я вынужден сделать это в php?

Victor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...