使用MySQL函数返回字符串的正确语法是什么?

时间:2018-12-14 13:07:46

标签: mysql sql syntax sql-insert

我遵循了课程材料中提供的示例,并制作了一个返回计数的函数。现在,我正在尝试制作一个函数,该函数将使我获得用户的全名,这与我制作count函数的原理相同,但我不断遇到此错误:

  

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第4行的''附近使用

CREATE FUNCTION getAuthorFullName (authorID INT)
RETURNS CHAR(45)
BEGIN
DECLARE author CHAR(45);
SELECT CONCAT(first, ' ',last) FROM person as fullName
JOIN user ON user.idPerson = fullName.idPerson
WHERE idUser LIKE authorID
INTO author;
RETURN author;

我自己检查了SELECT查询,当我手动传递作者ID时,它检索了作者的正确全名,因此我只需要使它在可以简单传递作者ID的函数中工作即可。

1 个答案:

答案 0 :(得分:1)

INTO跟随值。

如果idUser是整数,则使用=运算符。 LIKE字符串的ID

SELECT CONCAT(first, ' ',last) INTO author
FROM person as fullName
JOIN user ON user.idPerson = fullName.idPerson
WHERE idUser = authorID
;

这里是 sql demo

DROP FUNCTION IF EXISTS getAuthorFullName;

CREATE FUNCTION getAuthorFullName (authorID INT)
RETURNS CHAR(45)
BEGIN
DECLARE author CHAR(45) ;
SELECT CONCAT('first', ' ','last' ) INTO author;
RETURN author;
END;

SELECT getAuthorFullName(1);