mysql - 带参数的MySQL函数出错

标签 mysql sql function sql-function mysql-function

我的 MySQL 函数有 2 个参数,即 user_idpost_id

这是我的功能:

CREATE FUNCTION isliked(pid INT, uid INT)
RETURN TABLE
AS
RETURN (EXISTS (SELECT 1 FROM likedata ld WHERE post_id = pid AND user_id = uid
       )) as is_liked
END

我试着用下面的查询调用它:

SELECT posts.id, posts.title, isliked(111,123)
FROM posts

它返回以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RETURN TABLE
AS
RETURN (EXISTS (SELECT 1 FROM likedata ld WHERE post_id = pid AN' at line 2

应该是这样的返回结果http://sqlfiddle.com/#!9/91040/5 我是 sql 新手,任何帮助都会很棒,提前致谢

最佳答案

如果您希望函数返回 bool 值,请使用:

CREATE FUNCTION isliked(pid INT, uid INT)
RETURNS BIT
   RETURN ( EXISTS ( SELECT 1 FROM likedata ld WHERE post_id = pid AND user_id = uid ) )

关于mysql - 带参数的MySQL函数出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50559637/

相关文章:

php - Macports 不会安装

返回语法错误的 PHP SQL 插入语句,不确定它可能是什么

sql - Oracle - 在聚合函数中使用分析函数

MYSQL 如何检查表是否为 NULL,而不是 0

function - 如何转换函数类型?

python - 从 bash 脚本调用 python 函数

php - Connection.php 第 729 行中的 QueryException : SQLSTATE[23000]: Laravel 5. 2

mysql - 当某些项目具有固定位置时对 MySql 结果进行排序

sql - 为什么我得到额外的(1 行受影响)

r - 我的 CGI 可以调用 R 吗?