2017-05-18 3 views
1

Mehrere Tabelle/Zeile/Spalte Update in einzelnen Abfrageaktualisieren mehr als eine Mysqli Abfrage auf einmal

Ich möchte meinen Code zu kurz, weil ich einige Benutzer haben und mein Server auflegen, wenn es viele Benutzer sind . Auch lassen Sie mich wissen, wenn seine Zeit zu sparen, wenn ich sie in einzelner Abfrage verwenden oder wenn seine feinen mehrere Abfrage zu verwenden, dann bin ich glücklich mit ihm

Dies ist meine Steuertabelle

id | time  | tax1 | tax2 | tax3 
1 | 1469856318 | 1 | 2 | 6 
2 | 1469856318 | 5 | 1 | 1 
3 | 1469856318 | 6 | 8 | 5 
4 | 1469856318 | 2 | 7 | 7 
5 | 1469856318 | 1 | 1 | 2 

Ich benutze Diese Schritte, aber manchmal gibt es so viele Zeilen und Spalten.

$u0 = "UPDATE tax SET time='$ms', tax1='$tax1' WHERE id = 1"; 
$u1 = "UPDATE tax SET time='$ms', tax2='$tax2' WHERE id = 2"; 
$u2 = "UPDATE tax SET time='$ms', tax3='$tax3' WHERE id = 3"; 

Ich würde gerne sehen, ob es möglich ist, diese

Eine andere Sache

in einer Abfrage zu tun, wenn es möglich ist, zwei verschiedene Tabellen in einer einzigen Abfrage zu aktualisieren

$u0 = "UPDATE tax SET time='$ms', tax1='$tax1' WHERE id = 1"; 
$u1 = "UPDATE tax SET time='$ms', tax2='$tax2' WHERE id = 2"; 
$u2 = "UPDATE tax SET time='$ms', tax3='$tax3' WHERE id = 3"; 
$u4 = "UPDATE tax1 SET tax2='$tax2' WHERE id = 5"; 

Antwort

0

Sie können Bedingungslogik verwenden, um eine einzelne Tabelle zu aktualisieren:

UPDATE tax 
    SET time = '$ms', 
     tax1 = (CASE WHEN id = 1 THEN '$tax1' ELSE tax1 END), 
     tax2 = (CASE WHEN id = 2 THEN '$tax2' ELSE tax2 END), 
     tax3 = (CASE WHEN id = 3 THEN '$tax3' ELSE tax3 END) 
    WHERE id IN (1, 2, 3); 

Ich würde empfehlen, jede Abfrage unabhängig aktualisieren.

+0

ich werde es versuchen – Thepak

+0

das funktionierte gut für einen Tisch. wenn ich nur ** tax1 ** – Thepak

+0

@thepak aktualisiere. . . Ich habe übersehen, dass es sich um verschiedene Spalten handelt, die du aktualisierst. Ich habe die Antwort behoben. –

Verwandte Themen