0
MySQLのストアドプロシージャによって処理される可能性の低いイベントに直面しています。 私はストアドプロシージャ内で複数の行を検索することができましたが、実際に行えるようになる前にテストしています。同じ値を何度も繰り返し挿入するストアドプロシージャ
現在の問題は、以下のクエリの結果が100の異なる結果セットを返すことです。
ただし、挿入するクエリが問題の開始場所になっている場合。同じ@UID
を100に達するまで何度も何度も挿入しています。
挿入する前に次の行にインクリメントできる方法はありますか?
DECLARE pSpot INT(11) DEFAULT 0;
DECLARE con INT(11) DEFAULT 97;
DECLARE tempString VARCHAR(255) DEFAULT NULL;
DECLARE x INT(11) DEFAULT 0;
IF(pSpot<=97) -- condition 1
THEN
SELECT @uid:=uid,
nickname,
lastsync,
dob,
gender,
gender_preference,
Latest_LAT,
Latest_LON,
country,
imagetoken
FROM search_optimized_table
where country = @csid
and TIMESTAMPDIFF(YEAR,DOB,CURDATE()) BETWEEN minAge and maxAge
and [email protected]
and lastsync BETWEEN UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL -7 DAY))
and UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 0 DAY))
LIMIT con;
SET con = con - pSpot;
SET pSpot = pSpot + (Select found_rows());
WHILE x <= pSpot DO
INSERT INTO temp_local_history (pUid) values (@uid);
END WHILE;
これは実際のコードですか?無意味な(と終了していない)ifと無限のwhileループがあるので、私は尋ねます。 –
@ P.Salmonそれは実際のものではなく、ちょうどその一部です。 – FreedomPride
あなたの選択があなたがしたいことをしている場合は、無限ループwhileをドロップして、代わりにuidだけを選択して同じ条件を使用するinsertを代用することができます。 –