Я хотел бы вернуть одну строку в моей функции, но я получаю этот код ошибки.
Код ошибки: 1241. Операнд должен содержать 1 столбец (столбцы)?
У меня есть эти таблицы:
airport
airport_id,
city,
country,
name,
phonenumber
и
route
route_number,
start_date,
finish_date,
time,
start_airport_id,
finish_airport_id
Я хочу написать функцию, которую яукажите в его параметрах start_country, finish_country и date, и я хочу вернуть одну строку.
Так вот мой код:
FUNCTION `search`(start_country varchar(50), finish_country varchar(50), dat date)
RETURNS varchar(255) DETERMINISTIC
BEGIN
DECLARE start_id, finish_id varchar(50);
if (start_country is null ) or (finish_country is null) or (dat is null) then
return 'Parameters are required.';
end if;
SELECT airport_id INTO start_id FROM airport where country=start_country;
SELECT airport_id INTO finish_id FROM airport where country=finish_country;
if (start_id is null) or (finish_id is null) then
return 'There is no such country.';
else
RETURN (SELECT * FROM route
WHERE start_airport_id=start_id
AND finish_airport_id=finish_id
AND start_date=dat );
end if;
END
Я пишу, чтобы выбрать
search('Hungary', 'France', '2019-03-08')
и я хотел бы получить:
route_number | start_date | finish_date | time |start_airprot_id| finish_airport_id
AI1000 2019-03-08 2019-03-08 3hours 1 2
Но я получаю код ошибки: 1241. Операнд должен содержать 1 столбец (столбцы)