mysql - 1054、1064 存储过程错误

标签 mysql stored-procedures prepared-statement

知道为什么会这样吗?

mysql> DROP PROCEDURE IF EXISTS GetUserByUserID;
Query OK, 0 rows affected


    mysql> DELIMITER $$
    mysql> CREATE PROCEDURE GetUserByUserID(IN userID VARCHAR(32))
        BEGIN
            PREPARE stmt1 FROM 'SELECT u.*, usg.SCHOOL_GRADE_ID FROM PF_USER u LEFT JOIN PF_USER_SCHOOL_GRADE usg ON u.USER_ID=usg.USER_ID AND u.USER_ID=?';
            SET @a = userID;
            EXECUTE stmt1 USING @a;
            DEALLOCATE PREPARE stmt1;
        END $$
    DELIMITER ;

mysql> call GetUserByUserID(000E8893F29ED6E84CECCB0FA8B869D1);
ERROR 1064 : 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 'F29ED6E84CECCB0FA8B869D1)' at line 1

mysql> call GetUserByUserID(00100D6243E1E08BC17607E1AB9E3908);
ERROR 1054 : Unknown column '00100D6243E1E08BC17607E1AB9E3908' in 'field list'

最佳答案

尝试像这样调用存储过程:-

mysql> call GetUserByUserID('000E8893F29ED6E84CECCB0FA8B869D1');

关于mysql - 1054、1064 存储过程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18965837/

相关文章:

PHP PDO 更新准备好的语句问题

php - 在两个数据库上运行查询

mysql - MySQLx 尝试解析表达式时出错(Nodejs)

java - JDBC 实现 : error with regard to parameters

java - 准备语句到数据库设置变量类型处理

Java 准备好的语句未输入数据并命中捕获

mySQL-将两个表与一个相同的列值合并并比较开始日期和结束日期

php - 插入前检查重复项

sql - sql server中XML解析非法字符

SET 上的 MySQL 错误