2014-10-06 3 views
1

Я использую MySQL и MySQL workbench. Может кто-нибудь, пожалуйста, помогите мне здесь, потому что я схожу с ума!Запрос и хранимая процедура возвращают разные результаты

я выполнить запрос следующим образом:

# Retrieve user_team from user 
SELECT CS_USER_TEAMS_ID 
FROM classicseasonmodel_classicseasonuserteam 
WHERE user_id = 2; 

Который работает хорошо .. Я получаю значение CS_USER_TEAMS_ID которое :

ss_query

Однако при создании хранимых Процедура того же запроса с входным параметром.

CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(IN user_id INT) 
BEGIN 

    # Retrieve user team from user_id 
    SELECT CS_USER_TEAMS_ID 
    FROM classicseasonmodel_classicseasonuserteam 
    WHERE user_id = @user_id; 

END 

.. она возвращает ничего (нуль)

SS_StoredProcedure

Может кто-нибудь объяснить, как глупо я здесь? Благодарю.

ответ

1

Try:

DELIMITER // 

CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(IN p_user_id INT) 
BEGIN 
    # Retrieve user team from user_id 
    SELECT CS_USER_TEAMS_ID 
    FROM classicseasonmodel_classicseasonuserteam 
    WHERE user_id = p_user_id; 
END// 

DELIMITER ; 

Важно указать разницу между 9.4. User-Defined Variables и рутинными параметрами 13.1.15. CREATE PROCEDURE and CREATE FUNCTION Syntax, является различными переменными.

Смежные вопросы