Как исправить "ОШИБКА 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 //
Другие вопросы по тегам