0

我正在尝试编写一个 MySQL 存储过程,但在从表中选择后,我似乎无法使用多个 OUT 参数对其进行编译。而且我找不到任何具体的例子来说明我正在尝试做的事情。编译器错误状态,"UNEXPECTED INTO, expecting ; "而且,它说FirstName column is not declared. 任何帮助,将不胜感激。

 CREATE PROCEDURE `SP_SelectAllFighters`(out o_FighterID int, out o_FirstName varchar(45), out o_MiddleName varchar(45), out o_LastName varchar(45), o_FullName varchar(155), out o_WeightClass varchar(45), out o_TeamAssociation varchar(45), out o_Organization varchar(45))
BEGIN
    SELECT
        ID into o_FighterID,
        -- CONCAT_WS(' ', FirstName, MiddleName, LastName) into o_FullName,
        FirstName into o_FirstName,
        MiddleName into o_MiddleName,
        LastName into o_LastName,
        WeightClass into o_WeightClass,
        TeamAssociation into o_TeamAssociation,
        Organization into o_Organization
    FROM
        COMPETITOR;
END
4

1 回答 1

0

我以为你可以这样做:

SELECT o_FighterID = ID,
    o_FullName = CONCAT_WS(' ', FirstName, MiddleName, LastName),
    o_FirstName = FirstName,
    etc.
FROM
    COMPETITOR;

但是在查看 MySQL 参考之后,看起来 Select into syntax 是这样的:

SELECT ID, FirstName, ... into o_FighterID, o_FirstName, ...
FROM
    COMPETITOR;

此外,如果它声称未声明您的列名,您可能需要考虑使用表别名。

http://dev.mysql.com/doc/refman/5.0/en/select-into.html

于 2014-07-27T06:04:12.293 回答