0

phpMyAdmin 3.5.1で私は書いた:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION  `getconjointthismariage`(idmember smallint(5) unsigned, mariageidconjoint smallint(5) unsigned) RETURNS varchar(200) CHARSET utf8
BEGIN
DECLARE responce varchar(200);
SELECT CONCAT(" (a épousé ", IF( `members`.`deces_date` IS NOT NULL , "† ", "" ) , CONCAT_WS(" ", `members`.`prenom` , `members`.`nom`), ")") INTO responce
FROM `mariages`
LEFT JOIN `members` ON `members`.`id` = mariageidconjoint
WHERE (`mariages`.`id_member` = idmember AND `mariages`.`id_conjoint` = mariageidconjoint);
RETURN responce;
END$$

そして、私はこのエラーが発生します:

#1064- SQL 構文にエラーがあります。9 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

9 行目: RETURN 応答;

4

1 に答える 1

0

を使用してみてくださいSET

DELIMITER $$

CREATE FUNCTION  `getconjointthismariage`
(
    idmember smallint(5) unsigned, 
    mariageidconjoint smallint(5) unsigned
) 
RETURNS varchar(200) CHARSET utf8
BEGIN

    DECLARE responce varchar(200);

    SET responce =
        (SELECT CONCAT(' (a épousé ', IF( `members`.`deces_date` IS NOT NULL , '† ') , CONCAT_WS(' ', `members`.`prenom` , `members`.`nom`), ')') 
        FROM    `mariages`
                LEFT JOIN `members` 
                    ON `members`.`id` = mariageidconjoint -- <<== PLEASE DO CHECK THIS CONDITION
        WHERE   `mariages`.`id_member` = idmember AND 
                `mariages`.`id_conjoint` = mariageidconjoint);

    RETURN responce;

END$$

DELIMITER ;
于 2013-03-12T11:51:48.723 に答える