如何修复mysql中的“错误1241(21000):操作数应包含1列”?

sh7euo9m  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(348)

我想展示早班司机的详细情况。。

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 //
w1e3prcc

w1e3prcc1#

在函数中,返回类型是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 //

相关问题