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

Má nahradit do klauzuli where?

Vidím, že jste svůj problém vyřešili, ale abych odpověděl na vaši původní otázku:

REPLACE INTO ne mít WHERE doložka.

REPLACE INTO syntaxe funguje přesně jako INSERT INTO kromě toho, že všechny staré řádky se stejným primárním nebo jedinečným klíčem jsou před vložením nového řádku automaticky odstraněny.

To znamená, že místo WHERE klauzule, měli byste přidat primární klíč k nahrazovaným hodnotám, abyste omezili aktualizaci.

REPLACE INTO myTable (
  myPrimaryKey,
  myColumn1,
  myColumn2
) VALUES (
  100,
  'value1',
  'value2'
);

...poskytne stejný výsledek jako...

UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;

...nebo přesněji:

DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
  myPrimaryKey,
  myColumn1,
  myColumn2
) VALUES (
  100,
  'value1',
  'value2'
);


  1. java.lang.ClassNotFoundException:org.postgresql.Driver, Android

  2. Proč byste neměli používat mysql_fetch_assoc více než jednou?

  3. Jak získat přístup k PhpMyAdmin bez přihlášení k cPanel

  4. MySQL vybírá záznamy pro duplikáty pomocí více sloupců