【问题标题】:Stored Function with group_concat in MySQLMySQL 中带有 group_concat 的存储函数
【发布时间】:2013-09-02 07:26:09
【问题描述】:

我想在 MySQL 中创建一个存储函数。这个函数必须包含一个 group_concat 函数。

这是我当前的 SQL 查询:

DELIMITER $$
CREATE FUNCTION SprachenListe(
paramTable VARCHAR( 50 )
) RETURNS TEXT DETERMINISTIC BEGIN 
DECLARE Ausgabe TEXT;
SET @tableName = paramTable;
EXECUTE IMMEDIATE CONCAT('SELECT GROUP_CONCAT( DISTINCT ', @tableName.Sprache, ' ORDER
BY ',@tableName.Sprache,' SEPARATOR  ','/',' ) INTO ',Ausgabe,' FROM ',@tableName);
RETURN(Ausgabe);
END ;
$$
DELIMITER ;

这是错误信息:

#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 6 行的 'CONCAT('SELECT GROUP_CONCAT( DISTINCT ', @tableName.Sprache, ' ORDER BY ',@table' 附近使用正确的语法

有人有想法吗?

【问题讨论】:

标签: php mysql sql group-concat stored-functions


【解决方案1】:

您正在尝试使用动态 SQL,这在 MySQL 中是使用准备好的语句完成的,PREPARE 后跟 EXECUTE.... 但是,在 MySQL 中,这些仅支持存储过程,不支持存储函数。

预编译语句的 SQL 语法可以在存储过程中使用,但不能在存储函数或触发器中使用。

——http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-prepared-statements.html

【讨论】:

    猜你喜欢
    • 2010-12-07
    • 1970-01-01
    • 2019-07-08
    • 2011-05-26
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    相关资源
    最近更新 更多