За последние 24 часа нас посетили 17569 программистов и 1724 робота. Сейчас ищут 1623 программиста ...

Как посмотреть есть ли данные без их выборки

Тема в разделе "PHP и базы данных", создана пользователем ohh...again?, 11 авг 2006.

  1. ohh...again?

    ohh...again? Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    39
    Симпатии:
    0
    Вот сталкнулся с такой задачей, данные не надо выбирать, а надо только посмотреть существуют ли записи удовлетворяющие запросу. Например мне надо посмотреть есть ли запись с таким-то id и всё. Конечно можно сделать так:
    PHP:
    1.  
    2. $sql = "SELECT * FROM `defined_groups` WHERE `group_id` = '1'";
    3. $db->query($sql)
    4. if ($db->affectedRows() != 0)
    5. {
    6.         return true;
    7. }
    8.  
    Но ведь так не очень правильно же да? :)
     
  2. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. SELECT COUNT(`id`) FROM `defined_groups` WHERE `group_id`="1"
     
  3. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?
    2. $sql="SELECT COUNT(`id`) as c FROM `defined_groups` WHERE `group_id`='1';";
    3.  
    4. if ($a['c']==0)
    5. return false;
    6. ?>
     
  4. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    я пишу обычно так:

    Код (Text):
    1. SELECT 1 FROM таблица WHERE условие LIMIT 1
     
  5. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Выбрать первый столбец первой найденной строки?.. оригинально :)
     
  6. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    несовсем: не первый сталбец, а просто единицу
    выбрать 1 если в таблице есть одно совпадение с условием
     
  7. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    X-Cray
    запрос немного оптимальней Вашего т.к. достаточно одного совпадения
     
  8. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Да, действительно, единица выбирается.. хм.. всегда думал, что там можно номера столбцов выбирать (где-то прочитал, но так и не проверил - не нужно было)
     
  9. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Согласен, если не нужно кол-во найденных результатов - Ваш запрос проще.
     
  10. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    count(*) работает быстрее
     
  11. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    в memoriZ =)