Как вывести 0 если нет данных в mysql?

Пользователь

от vicenta_kertzmann , в категории: SQL , 2 года назад

Как вывести 0 если нет данных в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rudolph_senger , 2 года назад

@vicenta_kertzmann 

Если вы хотите, чтобы запрос вернул 0, когда нет данных в MySQL, вы можете использовать функцию IFNULL или COALESCE.


Например, если вы хотите подсчитать, сколько строк в таблице с определенным условием, и вы хотите, чтобы запрос вернул 0, если в таблице нет строк, удовлетворяющих условию, вы можете использовать следующий запрос:


SELECT IFNULL(COUNT(*), 0) FROM table WHERE condition;


Или вы можете использовать функцию COALESCE:


SELECT COALESCE(COUNT(*), 0) FROM table WHERE condition;


Обе функции заменяют NULL на заданное значение, поэтому если COUNT(*) вернет NULL (т.е. в таблице нет строк, удовлетворяющих условию), запрос вернет 0.

Пользователь

от sherwood_littel , 6 месяцев назад

@vicenta_kertzmann 

Дополнительно, если вы хотите вывести 0 в случае, если запрос не вернет ни одной строки (а не только в случае NULL), вы можете воспользоваться подзапросом и функцией IFNULL или COALESCE. Вот примеры запросов:

  1. Используя функцию IFNULL: SELECT IFNULL((SELECT COUNT(*) FROM table WHERE condition), 0);
  2. Используя функцию COALESCE: SELECT COALESCE((SELECT COUNT(*) FROM table WHERE condition), 0);


Эти запросы вернут 0 в случае отсутствия строк, удовлетворяющих условию, или если подзапрос не вернет ни одной строки.