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

标签 mysql sql syntax sql-insert

我按照类 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/

相关文章:

Spring-Hibernate-MySQL 应用程序中的 javax.el.PropertyNotFoundException : Property not found on type java. lang.String

php - 更新数据库中序列化列的最佳方法

php - 无法显示图像路径存储在数据库中的图像

sql - 在新列中标记重复值

.net - 为什么我不能在 VB.NET 中使用 "New"表达式作为语句?

Mysql Groupby和Orderby问题

php - 清理输入到 Mysql 数据库的函数

sql - 将函数应用于 postgres 中表的列中的每个元素

Ruby 语法错误意外的 tLABEL

python - 初级 Python 3 语法