sql >> Databáze >  >> RDS >> Mysql

MySQL Cursor Loop se neaktualizuje

Pokud tomu dobře rozumím, vše, co potřebujete, je CROSS JOIN . Zkuste

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;

Zde je SQLFiddle demo.

Nyní to můžete zabalit do uložené procedury, pokud jste přešli na

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;

A použijte to

CALL copy_bullets_test(10001, 3);

Zde je SQLFiddle demo pro tento případ.




  1. Jak se vyhnout upozornění na kódování při vkládání binárních dat do sloupce blob v MySQL pomocí Pythonu 2.7 a MySQLdb

  2. Instalace PostGIS Homebrew odkazující na starou cestu?

  3. Odstraňte duplicitní záznamy bez vytvoření dočasné tabulky

  4. Zdroj aktivity uživatele (ala facebook). Jak seskupovat podobné aktivity?