Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Random / 3 сообщений из 3, страница 1 из 1
13.05.2018, 19:32
    #39643983
Geebrox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Random
Здравствуйте, хотел вывести из БД 20 рандомных записей. Получился такой запрос:
Код: sql
1.
SELECT * FROM `table_name` WHERE 1 ORDER BY rand() LIMIT 20



Всё работает отлично, но есть одна проблема. Если в БД нет 20и записей, то запрос возвращает столько записей, сколько имеется в БД. Как можно сделать так чтобы, если в БД нет 20и записей, то выбирался рандомно ещё записи, пока количество записей для ответа не было ровно 20. Помогите пожалуйста, я новичок в MySQL, прощу прощение если что-то высказал не правильно.
...
Рейтинг: 0 / 0
13.05.2018, 20:06
    #39643991
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Random
В смысле, на выходе продублировать некоторые записи? Типа, если в таблице всего одна запись, то отдать её в 20-ти строках результата? Тогда не ясно, что делать при отсутствии записей в таблице, дублировать то нечего. Или следует дополнить результат до 20-ти строк с каким-то заданным значением, например, NULL или пустая строка?
...
Рейтинг: 0 / 0
13.05.2018, 21:13
    #39644003
Geebrox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Random
vkle, всё верно, если 1 запись, то продублировать 20 раз, если 10 то рандомно продублировать ещё 10 запросов, если нет, то ничего не возвращать.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Random / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]