我按照类 Material 中提供的示例制作了一个返回计数的函数。现在我正在尝试创建一个函数,该函数可以通过与创建计数函数相同的原理来获取用户的全名,但我不断收到此错误:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 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 的函数中工作即可。
最佳答案
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);
关于mysql - 使用 MySQL 函数返回字符串的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53780422/