gpt4 book ai didi

MYSQL 创建函数 - 获取 : Not allowed to return a result set from a function

转载 作者:行者123 更新时间:2023-11-29 19:14:26 26 4
gpt4 key购买 nike

我使用以下内容创建了一个程序:

DELIMITER //
CREATE PROCEDURE marketingdb_eia.procGetEstateConsumerFromVehicleReg(IN clientId int, IN vehicleReg varchar(10))
SQL SECURITY INVOKER
BEGIN

SELECT *
FROM (SELECT *, CONCAT(c1.vehicle_reg_1, c1.vehicle_reg_2, c1.vehicle_reg_3, c1.vehicle_reg_4) AS "AllVehicleReg"
FROM estate_consumer AS c1
INNER JOIN consumer c2
ON c1.consumer_id = c2.id
WHERE c2.client_id = clientId) AS a
WHERE a.AllVehicleReg LIKE vehicleReg;

END //

这工作得很好,所以我现在尝试为上面创建一个函数,所以我试图这样做:

DELIMITER //
CREATE FUNCTION marketingdb_eia.procGetEstateConsumerFromVehicleReg(clientId int, vehicleReg varchar(10))
RETURNS CHAR
BEGIN

SELECT *
FROM (SELECT *, CONCAT(c1.vehicle_reg_1, c1.vehicle_reg_2, c1.vehicle_reg_3, c1.vehicle_reg_4) AS "AllVehicleReg"
FROM estate_consumer AS c1
INNER JOIN consumer c2
ON c1.consumer_id = c2.id
WHERE c2.client_id = clientId) AS a
WHERE a.AllVehicleReg LIKE vehicleReg;

END //

但是出现以下错误:“不允许从函数返回结果集”。

经过一些研究后,您似乎无法返回包含列的集合。我必须在 SELECT 查询之后使用一些 INTO 功能,但不知道在哪里执行此操作以及更改哪些内容以返回与我的 PROCEDURE 相同的值。

任何帮助将不胜感激。

谢谢

最佳答案

你可以手动建一个临时表,然后调用该函数,就可以将数据插入到你的临时表中。MYSQL好像不支持返回表

关于MYSQL 创建函数 - 获取 : Not allowed to return a result set from a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com