Intereting Posts
PHP foreach, который возвращает только ключи Изображение html2canvas save не работает Как эффективно реализовать модули в среде MVC и обрабатывать маршрутизацию на несколько контроллеров в одном модуле? Доступ к комментариям поля MySQL к PHP https non www redirect Функция Javascript, допускающая переменные PHP Включить PHP-файл как строку Apache не работает после обновления Windows 8.1 Синхронный AMQP из PHP Отправка большого электронного письма в PHP Могу ли я ограничить доступ к веб-папке только зарегистрированным пользователям моего веб-сайта? «Смешанный контент заблокирован» при выполнении операции HTTP AJAX на странице HTTPS Предупреждение PHP: array_shift () ожидает, что параметр 1 будет массивом, null указан в /home5/…/php/symfony/command/sfCommandManager.class.php Фундаментальное непонимание модели в «Красноречии» (за пределами Laravel) PHP: разделите строку на запятую, но НЕ, когда между скобками или кавычками?

Обновляйте только поле MYSQL, если поле содержит null или 0

Я хочу вставить данные в таблицу, а если таблица уже имеет такое же входное значение rName, то это обновление этой строки (поскольку rName является уникальным индексом), и все это хорошо работает.

Но в UPDATE я бы хотел только обновить поля IF, если поле в нем еще не имеет (NULL).

INSERT INTO $table (`rDate`, `rName`, `rFormat`, `rText`) VALUES (CURRENT_TIMESTAMP, 'name3', 'formate22') ON DUPLICATE KEY UPDATE rFormat=VALUES(rFormat), IF('rFiles'=NULL,rFiles=VALUES(rFiles), rFiles=VALUES(rSizeMB)), rText=VALUES(rText) 

И лучше ли это делать то, что я делаю? Это кажется немного репутирующим, поскольку у меня примерно в два раза больше полей, показанных здесь, я просто сократил этот вопрос.

Попробуй это:

 ... ON DUPLICATE KEY UPDATE rFormat=VALUES(rFormat), rFiles=IF(ISNULL(rFiles), VALUES(rFiles), VALUES(rSizeMB)), rText=VALUES(rText); 

Я не использовал более продвинутый материал MySQL (например, IF) в немного, поэтому я не уверен в этом, но он должен быть прав. Ключевой частью является установка rFiles на значение, возвращаемое IF.