проблемы с запросом

Тема в разделе "Базы данных", создана пользователем Graph33, 2 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    есть таблица
    Код:

    CREATE TABLE IF NOT EXISTS `list` (
    `id` int(11) NOT NULL auto_increment,
    `id_feed` int(11) NOT NULL,
    `id_type` int(11) NOT NULL,
    `data` mediumtext NOT NULL,
    `active` enum('0','1') NOT NULL,

    PRIMARY KEY (`id`),

    )


    Выбираю из нее записи запросом
    SELECT * FROM `list` where id_feed='18' and active='1' group by `id_type`

    все хорошо, но для каждого поля с одинковым id_type существует несколько разных записей с разным полем id, а в запрос попадает всегда первое. Если ли возможность написать запрос так что бы для каждого id_type попадало случаное поле id
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    PHP:
    $sql "SELECT * FROM `list` where id_feed='18' and active='1' group by `id_type` LIMIT ".random(100).", 1";
     
  3. xxlbozman

    xxlbozman Писатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    7
    Симпатии:
    0
    сообщение потерто
     
  4. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    еще раз переформулирую задачу может так понятнее

    мне нужно для каждого id_type получить одну случайную (не первую) запись удовлетворяющую условиям id_feed='18' and active='1'

    Добавлено через 58 секунд
    2 diavolic
    спасибо, но совсем не то...
     
  5. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    SELECT * FROM `list` WHERE id_feed='18' and active='1' ORDER BY RAND()
    выдаст все строки в случайном порядке. Если нужна 1 строка - добавь LIMIT 1
     
  6. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    Да ё моё...
    Вы читайте что нужно прежде чем писать, а набор постов это плохо.
     
  7. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    всем спасибо
    решение найдено

    Код:
     select t.* from (select * from list where id_feed='18' and active='1' order by rand())  t group by t.id_type
    закрывайте тему.
     
Статус темы:
Закрыта.