Как правильно сформулировать запрос SQL для случая, когда значение отсутствует в таблице базы данных?

  • 12 августа 2023 г. 21:55
Ответы на вопрос 3
Для правильной проверки наличия значения "timezone" в таблице, вы можете использовать оператор COUNT() в SQL запросе. Вот как правильно сформулировать ваш запрос:

$query = "SELECT COUNT(*) as count FROM city_meta WHERE city_id = 1 AND key = 'timezone'";

Результатом этого запроса будет количество записей в таблице, которые соответствуют условию. Затем, вы можете проверить значение count в своем коде:

if ($query->count > 0) {
    // выполнить запрос на обновление значения
} else {
    // выполнить запрос на добавление новой записи
}

Таким образом, вы можете корректно определить наличие значения "timezone" в таблице и выполнять соответствующие действия.
Вы можете исправить свою проблему, используя запрос типа insert ... on duplicate key update ..., подробности которого можно найти здесь: https://dev.mysql.com/doc/refman/8.0/en/insert-on-...


Вам нужно добавлять таймзону города при добавлении в базу и обновлять ее при обновлении записи.
Похожие вопросы