Хранимая функция MySql возвращает ноль или возвращаемое значение не работает - PullRequest
0 голосов
/ 02 июля 2019

Я хочу создать хранимую функцию, в которой, если гость сделал резервирование в конкретную дату, он возвращает адрес электронной почты гостя, а если он этого не сделал, он возвращает ноль. Я хочу использовать pID и запрашиватьСохраненная функция.Номера с видом на 0000-00-00 еще не забронированы.Я не могу даже создать хранимую функцию, она дает мне ошибки уже.Что случилось?Что мне нужно добавить, чтобы вернуть почту?Как мне это сделать?

Моя текущая база данных:

pID              |begindate    | enddate     |  mail 
------------------------------------------------------
COD12            | 2014-07-15  | 2014-07-18  | z@yahoo.com
COD400           | 2014-07-20  | 2014-07-21  | q@hotmail.com
KOD12            | 0000-00-00  |             | 
COD600           | 2014-07-04  | 2014-07-12  | h@gmail.com
MOD10            | 0000-00-00  |             | 

Итак, я хочу запустить сохраненную функцию:

SELECT Stored_Function('COD12','2014-07-15')

Возвращает:

| Stored_Function('COD12','2014-07-15')     |     
------------------------------------------
| 2014-07-15                                |

И это возвращает Null:

SELECT Stored_Function('COD12','2014-07-16')
| Stored_Function('COD12','2014-07-16')     |     
------------------------------------------
| Null                                      |

То, что я пробовал и не работало:

DELIMITER $$

CREATE FUNCTION Stored_Function(i_pId int, begindate DATE) RETURNS DATE
BEGIN
 DECLARE v_date DATE;

  SET v_date = 
 (
  SELECT begindate 
    FROM tab
   WHERE pId = i_pId ;
 );

  IF v_date = '0000-00-00' THEN
    SET mail = NULL;
  END IF;

  RETURN mail;
END 

$$

DELIMITER ;

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