Wielu programistów nadal wykonuje zapytanie, aby sprawdzić, czy pole jest obecne w tabeli, a następnie wykonuje zapytanie wstawiania lub aktualizowania zgodnie z wynikiem pierwszego zapytania. Spróbuj użyć składni ON DUPLICATE KEY, jest to dużo szybsze i lepsze następnie wykonanie 2 zapytań. Więcej informacji można znaleźć tutaj
jeśli chcesz zachować tę samą wartość dla c, możesz wykonać aktualizację z tą samą wartością
różnica między „zamień” a „na zduplikowanym kluczu”:
jeśli twoja tabela nie ma klucza podstawowego lub klucza unikalnego, zamiana nie ma żadnego sensu.
Możesz również użyć VALUES
funkcji, aby uniknąć konieczności dwukrotnego określania rzeczywistych wartości. Np. zamiast
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
możesz użyć
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Gdzie VALUES(c)
oceni wartość określoną wcześniej (6).