sql >> Database teknologi >  >> RDS >> Mysql

Har replace into en where-klausul?

Jeg kan se, at du har løst dit problem, men for at besvare dit oprindelige spørgsmål:

REPLACE INTO gør ikke har en WHERE klausul.

REPLACE INTO syntaks fungerer præcis som INSERT INTO bortset fra at alle gamle rækker med den samme primære eller unikke nøgle automatisk slettes, før den nye række indsættes.

Dette betyder, at i stedet for en WHERE klausul, bør du tilføje den primære nøgle til de værdier, der erstattes for at begrænse din opdatering.

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

... vil give det samme resultat som...

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

...eller mere præcist:

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


  1. hvordan får jeg måned fra dato i mysql

  2. indsættelse af data i mysql-database ved hjælp af php

  3. Sådan indstilles lokaliteten for den aktuelle forbindelse i MySQL

  4. MySQL - Deltag og tæl rækker fra en anden tabel