Как я пропускаю одну ячейку в запросе MySQL

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь сделать столбец обновления PHP-кода под названием «загрузки» равным нулю внутри MySQL.

После выполнения команды я хочу обновить одну ячейку в столбце загрузки до «100» для пользователя с именем «гость», потому что первый запрос сбрасывает его до нуля. Это мой код:

 <?php
require_once 'connect.php';
if( $link->query("update users set downloads = 0") ){
    // succesful
} else {
    // fail
}
?>
  

Моя структура таблицы выглядит следующим образом:

 | NAME | PASSWORD | DOWNLOADS 
| Johny | XieofEnfoEQ | NULL 
| guest | nfOEnfoiJEJj | 100
  

Есть ли какой-либо способ заставить запрос обновлять все загрузки, но сохранить одну ячейку для пользователя guest без каких-либо изменений!

Ответ №1:

Вы можете настроить свой запрос, чтобы установить downloads значение 100 для guest и 0 для всех остальных, используя CASE выражение:

 UPDATE users
SET downloads = CASE WHEN `NAME` = 'guest' THEN 100 ELSE 0 END
  

Демонстрация на dbfiddle