|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
Добрый день. Задача такая: База такая упрощенный вариант: table _____ id name type 1 name1 A 2 name1 3 name1 A 4 name1 5 name1 6 name1 A Делаем поочередные запросы в базу. Одному любому пользователю - запись показывается один раз. Сначала нужно вывести все записи с type=A Затем все остальные записи. Сейчас я делаю так: SELECT * from table ORDER BY type DESC LIMIT 0,1 Соответственно мне все это выводиться в определенном порядке. И всем пользователям выводится в таком порядке. А мне нужно выводить всегда в разном порядке. Т.е. в случайном. Но, сначала в случайном порядке поля с type=A А потом все остальные, тоже в случайном. Если смотреть в базу выше. То, получается сначала нужно вывести (случайным образом) записи с id: 3, 1, 6. Затем все остальные. Можно ли это сделать в одном запросе? Если да, то как? Или куда копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 12:31 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
Добавьте второй уровень сортировки: Код: sql 1.
Вот только какой смысл в случайной сортировке при LIMIT 0,1 - до меня лично не доходит... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 13:12 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
AkinaДобавьте второй уровень сортировки: Код: sql 1.
Спасибо. Попробую. AkinaВот только какой смысл в случайной сортировке при LIMIT 0,1 - до меня лично не доходит... Смысл такой: Разным пользователям приходят записи от сервера. По одной штуке. И нужно, чтобы порядок был разным. Чтобы было еще понятнее: Приходит вопрос с вариантами ответов. Нужно, чтобы у разных пользователей был разный порядок получения вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 13:26 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
Эм. Работает. Но, не так как нужно. Дополню: Таблица questions: id text type Таблица answers: id title question_id Я одним запросом вытягиваю и 1 вопрос , а так же 4 варианта ответа. Вот так это делаю (добавил второй уровень сортировки RAND() ): Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Теперь вместо одного вопроса, выбираются 4 разных вопроса. Без RAND() выдает один вопрос и его 4 варианта ответа. Но, не случайно. Как-то можно выбрать 1 случайный вопрос и его 4 варианта ответа? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 14:03 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
rubiksКак-то можно выбрать 1 случайный вопрос и его 4 варианта ответа?Если надо выбрать случайный ВОПРОС - то в подзапросе следует выбирать именно один вопрос при случайной сортировке. И только потом лепить к нему его ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 14:09 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
Akina, Но, тогда я не получу данных о самом вопросе. Только ответы придут мне. Или я не правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 15:14 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
rubiksтогда я не получу данных о самом вопросе.Сфига бы? не, если забыть в список полей вывода добавить поля из подзапроса - так и будет, но кто ж в том виноват? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 16:10 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
Akina, Если я правильно понял то, как-то так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Если да, то это уже два вложенных запроса. Если мне нужно будет что-то еще вытягивать из таблицы questions , то нужно будет еще один подзапрос писать. Не понятно, что с нагрузкой. Может сразу проще сделать отдельно два запроса? И, кстати, так пока и не понял, как вытягивать только один вопрос. Сейчас вышеуказанный код вытягивает 4 разных вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 16:46 |
|
Вывод в случайном порядке одного типа, затем следующего типа.
|
|||
---|---|---|---|
#18+
rubiksЕсли я правильно понялУвы, неправильно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 16:58 |
|
|
start [/forum/topic.php?fid=47&msg=39857875&tid=1828986]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
87ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 495ms |
0 / 0 |