У меня небольшая дилемма с моим запросом. Чтобы мой код был оптимальным, я хотел бы сделать как можно меньше логики в PHP и позволить MySQL позаботиться о большинстве вещей.
Итак, вот что у меня есть:
У меня есть массив, например, 10 ключей. Каждый ключ удерживает новый массив в некоторых значениях. Каждое значение представляет строку в таблице базы данных.
Допустим, моя таблица базы данных имеет 6 столбцов. первый является основным с автоматическим приращением. Колонки 2, 3 и 4 должны быть уникальными. Колонка 5 - это текстовое представление, которое не должно быть уникальным. Столбец 6 представляет собой INT (1), что либо 0 или 1.
Теперь, когда я вставляю данные в свою таблицу, я использую INSERT INTO mytable (col2, col3, col4, col5, col6) VALUES ('$col2','$col3','$col4','$col5',1) ON DUPLICATE KEY UPDATE col5 = '$col5', col6 = 0;
Это прекрасно работает, но не выполняет то, что мне нужно.
Когда я отправляю один и тот же массив еще раз, но для ключа 3, строки col5 я меняю данные на что-то другое, я хочу, чтобы col6 для этого ключа был обновлен до 0; остальное должно остаться 1.
Что происходит сейчас, так это то, что каждая строка будет обновляться, даже если она обновляется с использованием точно таких же данных
Итак, мне нужно только обновить col6, если col5 отличается от текущего сохраненного значения.
Как я могу это сделать?