sql >> Databasteknik >  >> RDS >> Mysql

MySQL Cursor Loop uppdateras inte

Om jag har förstått det rätt är allt du behöver CROSS JOIN . Prova

INSERT INTO bullets (product_code, bullet_text) 
SELECT m.product_code, b.bullet_text 
  FROM bullets b CROSS JOIN master m
 WHERE b.product_code = 10001
   AND m.product_group = 3
   AND m.product_code <> 10001;

Här är SQLFiddle demo.

Nu kan du slå in det i en lagrad procedur om du gick till

CREATE PROCEDURE copy_bullets_test (IN product_code_from INT, IN product_group_to INT)
INSERT INTO bullets (product_code, bullet_text) 
SELECT m.product_code, b.bullet_text 
  FROM bullets b CROSS JOIN master m
 WHERE b.product_code = product_code_from
   AND m.product_group = product_group_to
   AND m.product_code <> product_code_from;

Och använd den

CALL copy_bullets_test(10001, 3);

Här är SQLFiddle demo för det fallet.




  1. ställa in global sql_mode i mysql

  2. Operatörer för att extrahera JSON-delkomponenter

  3. Hur man får de senaste 3 månadernas försäljningsdata i MySQL

  4. Beräkna antalet samtidiga händelser i SQL