Mysql 10541064存储过程错误

Mysql 10541064存储过程错误,mysql,stored-procedures,prepared-statement,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.S

知道为什么会这样吗

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');

由于要传递字符串,所以应该用单引号将值括起来,调用GetUserByUserID'000E8893F29ED6E84CECCB0FA8B869D1';