2012-03-13 17 views
0

かなり単純な質問ですが、より複雑な質問に対する回答しか見つけることができません。MySQLストアドプロシージャでクエリ結果として変数を設定する方法は?

私はストアドプロシージャーで作業していますが、現在REPEATループ内にあります。ループで次のクエリを実行して、返される1列の値を取得する必要があります(1レコードのみが返されます)。これは、後でループで使用するためにvarとして格納する必要があります。

SELECT photo_id FROM photos ORDER BY photo_id DESC LIMIT 1;

私はどのように 'last_photo_id'に設定して保存された手順の後で使用するのですか?

答えて

0

これを試してください:あなたは、あなたがしたいものを行うには他に方法はありません確信している場合、ある

SELECT @varname := photo_id 
FROM photos 
ORDER BY photo_id DESC 
LIMIT 1; 

DECLARE total_products INT DEFAULT 0 
SELECT COUNT INTO total_products 
FROM products 
0

あなたはとても例

SET i_camera_count = get_camera_count(i_photo_camera_data_id); 

のための機能 を使用して、このような関数を作ることができます。

DELIMITER $$ 

DROP FUNCTION IF EXISTS `get_camera_count` $$ 
CREATE DEFINER=`root`@`localhost` FUNCTION `get_camera_count`(camera_id_2 INT(10)) RETURNS int(11) 
BEGIN 
    DECLARE v_return_val INT; 
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_return_val = -1; 


SELECT x FROM y WHERE camera_id = camera_id_2 

    RETURN v_return_val; 
END $$ 

DELIMITER ; 
1

あなたこのような何かを行うことができますループで行うよりも。 SQLは、セットベースのソリューションに使用するときに最適です。

関連する問題