Vă mulțumim pentru susținere

Actualizări multiple în MySQL

Știu că puteți introduce mai multe rânduri simultan, există o modalitate de a actualiza mai multe rânduri simultan (ca în, într-o singură interogare) în MySQL?

Editați | ×: De exemplu, am următoarele

Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8

Vreau să combin toate următoarele actualizări într-o singură interogare

UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
0
adăugat editat

5 răspunsuri

Ați putea fi, de asemenea, interesat de utilizarea conexiunilor la actualizări, ceea ce este posibil, de asemenea.

Update someTable Set someValue = 4 From someTable s Inner Join anotherTable a on s.id = a.id Where a.id = 4
-- Only updates someValue in someTable who has a foreign key on anotherTable with a value of 4.

Editați: Dacă valorile pe care le actualizați nu vin din altă parte a bazei de date, va trebui să emiteți mai multe interogări de actualizare.

0
adăugat
UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'

Ar trebui să funcționeze pentru tine.

Există o referință în manualul MySQL pentru mai multe tabele.

0
adăugat
UPDATE tableName SET col1='000' WHERE id='3' OR id='5'

Acest lucru ar trebui să realizeze ceea ce căutați. Doar adăugați mai multe id-uri. Am testat-o.

0
adăugat

Da, este posibil - puteți folosi INSERT ... pe UPDATE KEY DUPLICATE.

Folosind exemplul dvs.:

INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
0
adăugat
Dacă nu există duplicate, atunci nu vreau ca rândul să fie inserat. ce ar trebui să fac? pentru că eu sunt de preluare de informații de la un alt site care menține tabele cu id-uri. Inseriez valori cu privire la acel id. dacă site-ul are înregistrări noi, atunci voi termina introducerea numai a ID-urilor și numărați, cu excepția celorlalte informații. dacă și numai dacă există o intrare pentru id atunci ar trebui să actualizeze altceva ar trebui să săriți. ce ar trebui sa fac?
adăugat autor Jayapal Chandran
așa că dacă este ca inserarea în sări peste nul sau săriți peste gol pe actualizarea duplicat ... atunci ar fi frumos.
adăugat autor Jayapal Chandran

Următoarele vor actualiza toate rândurile dintr-un tabel

Update Table Set
Column1 = 'New Value'

Următoarea va actualiza toate rândurile unde valoarea Coloane2 este mai mare de 5

Update Table Set
Column1 = 'New Value'
Where
Column2 > 5

Există toate exemplele Unkwntech de actualizare a mai multor table

UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'
0
adăugat