как это сделать с чистым mysql?

0

Если mysql запись с условием существует - обновите его, иначе создайте новую запись

  • 1
    Можете привести пример? Возможно, определяемые пользователем переменные будут полезны.
  • 0
    Не могли бы вы сказать нам, каково ваше состояние? Это может иметь значение для ответа.
Показать ещё 3 комментария
Теги:

4 ответа

5
Лучший ответ

Это то, что вы ищете?

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

  • 1
    Это нормально, но будет делать то, что хотел OP, если в этих столбцах есть уникальный индекс; его нельзя использовать для произвольных условий.
2

Используйте REPLACE вместо INSERT.

2

Вы можете использовать REPLACE INTO для этого с синтаксисом INSERT INTO. Таким образом MySQL будет ссылаться на UPDATE всякий раз, когда есть нарушение фиктивного ограничения.

Помните, что эта конструкция является специфичной для MySQL, поэтому ваш запрос не будет работать при каждом переключении с БД.

1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню