За последние 24 часа нас посетили 151245 программистов и 2185 роботов. Сейчас ищут 1166 программистов ...

Вывести тех кто с фото если они есть

Тема в разделе "MySQL", создана пользователем danya_nyjniy, 13 май 2012.

  1. danya_nyjniy

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

    С нами с:
    18 дек 2010
    Сообщения:
    19
    Симпатии:
    0
    Есть таблица с пользователями:

    mysql_query("CREATE TABLE `table_users` (
    id_user BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    avatar VARCHAR(255) CHARACTER SET UTF8 COLLATE utf8_unicode_ci,
    PRIMARY KEY (id_user))TYPE=MyISAM CHARACTER SET UTF8 COLLATE 'utf8_unicode_ci'")

    Если avatar не пусто то значит, у пользователя есть фото.

    Нужно вывести рандомно 10 пользователей у которых есть фото а если пользователей с фото всего 6 то нужно вывести сначало 6 с фото а потом 4 без фото.

    То есть это для того чтобы показывать 10 случайных пользователей. И я хочу, чтобы в самом верху были сначало те кто с фото а потом те кто без фото и причём в случайном порядке.
     
  2. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    SELECT * FROM `table_users` ORDER BY `avatar` DESC, RAND() LIMIT 10;
     
  3. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    Лажо, первая сортировка будет по аватару, по алфавиту. Наличие авы нужно в условие ставить. А потом еще один запрос, если результатов меньше 10.
     
  4. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    нет не лажа. выведет сначала тех, у кого аватарка есть, строка (1) больше пустой строки (0). строки с аватаркой будут выше
     
  5. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    Лажо, если автаркии будут более чем у 10 пользователей всегда будут выводится одни и те же по алфавиту названий аватарок (строка 255), а нужен рандом

    Если уж так хочется одним запросом нужно делать вычисляемое поле, которое принимает значения 0 и 1, в зависимости от того есть ава или нет, и сортировать по нему. Но 2 простых запроса для базы будут легче
     
  6. MaXyC_Web_Studio

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

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    а после DESC, вы не заметили RAND() ?

    Добавлено спустя 1 минуту 41 секунду:
    проверил на 8 тыс записей. тупости бд не обнаружено. а выше... не думаю что у ТопикСтартера будет в обозримом будущем пользователей больше 10 тыс, а когда будет, он и сам поймет как сделать.
    запрос сделал свою работу? сделал. предлагаю закрыть тему
     
  7. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    заметили.
    а вот как ты это себе представляешь, сортировать по убыванию но случайно???
    не проканает, мускль не блондинко :)

    твой запрос проверен, не катит.