Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.04.2018, 08:34
|
|||
|---|---|---|---|
|
|||
Как избавиться от дублей в процедуре. |
|||
|
#18+
Подскажите пожалуйста. Есть процедура которая возвр. случайные id из таблицы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Вот думал отловить с помощью отлова ошибки (1062 дублирование уник. ключа) Повесть на поле rand_id уникальный ключ. CREATE TEMPORARY TABLE rands ( rand_id INT UNIQUE); Код: sql 1. И не хочет оно работать, подскажите как можно решить такое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 08:40
|
|||
|---|---|---|---|
Как избавиться от дублей в процедуре. |
|||
|
#18+
dok11не хочет оно работатьЧто означает "не хочет"? Оно не может не работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 08:52
|
|||
|---|---|---|---|
|
|||
Как избавиться от дублей в процедуре. |
|||
|
#18+
Akina, Код: sql 1. 2. Дубли в результате ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 08:53
|
|||
|---|---|---|---|
|
|||
Как избавиться от дублей в процедуре. |
|||
|
#18+
Как можно пропустить итерацию при возникновении дубля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 09:12
|
|||
|---|---|---|---|
Как избавиться от дублей в процедуре. |
|||
|
#18+
dok11Как можно пропустить итерацию при возникновении дубля?Просто пропустить? INSERT IGNORE. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 09:35
|
|||
|---|---|---|---|
|
|||
Как избавиться от дублей в процедуре. |
|||
|
#18+
Akina, Но при возникновении дубля нужно увеличить переменную чтобы в итоге было 4 уникальных id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 09:49
|
|||
|---|---|---|---|
Как избавиться от дублей в процедуре. |
|||
|
#18+
dok11при возникновении дубля нужно увеличить переменную чтобы в итоге было 4 уникальных id Ну так не майтесь фигнёй: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 09:53
|
|||
|---|---|---|---|
Как избавиться от дублей в процедуре. |
|||
|
#18+
Ну и в начале проверяйте, что заданное cnt не больше количества записей в random - иначе будете генерить до морковкина заговенья... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2018, 14:25
|
|||
|---|---|---|---|
|
|||
Как избавиться от дублей в процедуре. |
|||
|
#18+
Akina, Спасибо за помощь, понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.04.2018, 08:49
|
|||
|---|---|---|---|
|
|||
Как избавиться от дублей в процедуре. |
|||
|
#18+
Ещё вопросы к профессионалам так сказать. Данный выше метод судя по тестам, нормально отрабатывает при значительно кол-ве записей в бд и при отсутствии "дыр" в id'шниках. А если применить другой подход. 1. Определяем общее кол-во записей Код: sql 1. А уже потом выбирать из бд по limit со смещением rand() * (select count(*) from rand_table) Либо на php брать заранее несколько случайных смещений и выдёргивать из бд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1829883]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 136ms |

| 0 / 0 |
