Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy zastąpić na ma klauzulę WHERE?

Widzę, że rozwiązałeś swój problem, ale odpowiadając na Twoje pierwotne pytanie:

REPLACE INTO czy nie mieć WHERE klauzula.

REPLACE INTO składnia działa dokładnie jak INSERT INTO z wyjątkiem tego, że wszelkie stare wiersze z tym samym kluczem podstawowym lub unikalnym są automatycznie usuwane przed wstawieniem nowego wiersza.

Oznacza to, że zamiast WHERE klauzuli, należy dodać klucz główny do wartości zastępowanych, aby ograniczyć aktualizację.

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

...dostarczy taki sam wynik jak...

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

...a dokładniej:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uruchomić polecenie MySQL na bash?

  2. Przewodnik po projektowaniu bazy danych do quizu w MySQL

  3. MySQL LEFT JOIN używając MAX &GROUP BY na połączonym stole?

  4. MySQL Case w instrukcji Select z operatorem LIKE

  5. Jak usunąć spacje z ciągu znaków w MySQL?