Как исправить "ОШИБКА 1241 (21000): операнд должен содержать 1 столбец (столбцы)" в mysql?
Я хочу показать детали водителей, работающих в утреннюю смену..
delimiter //
create function dShift(n int)
returns varchar(128)
deterministic
begin
return (select driver.driver_no,driver_name,licence_no,address,d_age,salary
from driver,bus_driver as bd where bd.shift=n and bd.driver_no =
driver.driver_no);
end //
1 ответ
В вашей функции тип возвращаемого значения varchar returns varchar(128)
, Таким образом, он ожидает одну строку в качестве вывода. Но вы возвращаете 6 столбцов в качестве вывода.
Вы можете использовать следующий способ, чтобы получить список столбцов в качестве вывода:
delimiter //
CREATE FUNCTION dShift (n INT)
BEGIN
SELECT driver.driver_no
,driver_name
,licence_no
,address
,d_age
,salary
FROM driver
JOIN bus_driver AS bd ON bd.driver_no = driver.driver_no
WHERE bd.shift = n;
END //