За последние 24 часа нас посетили 18334 программиста и 1634 робота. Сейчас ищут 1687 программистов ...

Как заставить mysql возвращать 0 в случае отсутствия результ

Тема в разделе "MySQL", создана пользователем energy2008, 2 мар 2010.

  1. energy2008

    energy2008 Активный пользователь

    С нами с:
    24 июн 2008
    Сообщения:
    47
    Симпатии:
    0
    Как заставить mysql возвращать 0 в случае отсутствия результата выполнения запроса
    Пришел к этому варианту, но может быть можно сделать запрос проще?

    [sql]
    SELECT IF (
    (

    SELECT c_value AS sday
    FROM global_couriers
    WHERE c_date = DATE( DATE_SUB( NOW( ) , INTERVAL 1
    DAY ) )
    ), (

    SELECT c_value AS sday
    FROM global_couriers
    WHERE c_date = DATE( DATE_SUB( NOW( ) , INTERVAL 1
    DAY ) )
    ), 0
    ) AS sdsd
    [/sql]
     
  2. kotyara

    kotyara Активный пользователь

    С нами с:
    17 фев 2010
    Сообщения:
    163
    Симпатии:
    0
    IFNULL(field,default)
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а зачем? просто проверяй если выводит пустой массив присваивай 0 да и всо
     
  4. energy2008

    energy2008 Активный пользователь

    С нами с:
    24 июн 2008
    Сообщения:
    47
    Симпатии:
    0
    Это нужно чтобы в конструкции
    [sql](
    SELECT IFNULL(
    (

    SELECT SUM( c_value )
    FROM rasobi_global_couriers
    WHERE YEAR( c_date ) = YEAR( DATE_SUB( NOW( ) , INTERVAL 1 YEAR ) )
    ), 0
    )
    )
    UNION (

    SELECT IFNULL(
    (

    SELECT SUM( c_value )
    FROM rasobi_global_couriers
    WHERE MONTH( c_date ) = MONTH( DATE_SUB( NOW( ) , INTERVAL 1
    MONTH ) )
    ), 0
    )
    )
    UNION (

    SELECT IFNULL(
    (

    SELECT c_value syear
    FROM rasobi_global_couriers
    WHERE c_date = DATE( DATE_SUB( NOW( ) , INTERVAL 1
    DAY ) )
    ), 0
    )
    )[/sql]

    результат всегда бы состоял из 3х чисел
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
  6. energy2008

    energy2008 Активный пользователь

    С нами с:
    24 июн 2008
    Сообщения:
    47
    Симпатии:
    0
    Kreker

    можно этот запрос сделать как-то по другому?))
     
  7. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    energy2008
    я делаю три запроса