Форум сайта python.su
Добрый день, ребята! Задумана такая идея; получить одну запись по айди категории в рандом режиме.
Что-то на подобии(придумано):
session.query(Table_name).filter(Table_name.category_id == 1).random_one()
Офлайн
Офлайн
Спасибо. Разобрался, удобно однако. Для тех кому надо будет вдруг.
Если хотите выдрать много записей:
random_rows = session.query(TableName).order_by(func.random()).filter(TableName.category_id == 1).all()
random_row = session.query(TableName).order_by(func.random()).filter(TableName.category_id == 1).limit(1)
Отредактировано MetalHead (Апрель 7, 2015 14:16:28)
Офлайн
Ага. Мне тоже понравился. Но там есть специфика по БД. А это не очень хорошо Хотя я одну БД только использую.
Офлайн
4kpt_IIIХм, мне интересно стало, поподробней, пожалуйста.
Ага. Мне тоже понравился. Но там есть специфика по БД. А это не очень хорошо Хотя я одну БД только использую.
Офлайн
По ссылке же написано, что для разных БД нужно использовать разные команды…
Офлайн
4kpt_IIIА вы про это. Тьфу ты, не так понял вас.
По ссылке же написано, что для разных БД нужно использовать разные команды…
Отредактировано MetalHead (Апрель 7, 2015 14:22:18)
Офлайн
MetalHeadТолько если в конторе есть DBA не показывайтесь ему на глаза :)
Разобрался, удобно однако. Для тех кому надо будет вдруг.
Офлайн
PooH
Фиговенько. Ваше решение?
Офлайн
А если так? Выбираем одним запросом MAX и MIN Id, в этом диапазоне генерим рандомное число rnd_int, и селектим c LIMIT 1 по условию id >= rnd_int.
Офлайн