MYSQL函数选择sql

时间:2018-10-11 06:03:07

标签: mysql sql mysqli

我已经创建了一个名为calculate_marks(user_id)的函数,它可以正常运行, 但是当我插入插入语句时,它将继续在mysql中运行并且没有响应,有人知道这是什么问题吗?

INSERT INTO `marks`
(`marks_user_id`, `marks_addtime`, `marks_amount`
) 
SELECT `user_id`, UNIX_TIMESTAMP(),
    (SELECT calculate_marks(`user_id`))
FROM `user`
WHERE `user`.`user_status` = 'A';

如果我运行它,它将返回我想要的结果

SELECT `user_id`, (SELECT calculate_marks(`user_id`))
FROM `user`
WHERE `user`.`user_status` = 'A';

1 个答案:

答案 0 :(得分:2)

您正在尝试相关的子查询,没有适当的别名。您不需要使用子查询来计算标记。请尝试以下操作:

INSERT INTO `marks`
(`marks_user_id`, `marks_addtime`, `marks_amount`
) 
SELECT `user_id`, UNIX_TIMESTAMP(), calculate_marks(`user_id`) 
FROM `user`
WHERE `user`.`user_status` = 'A';