перемешивание значений в базе данных sqlite дает None - PullRequest
0 голосов
/ 28 октября 2019

Я пытался перетасовать значения столбца в базе данных sqlite, используя sqlalchemy, но используя запросы SQL.

У меня есть таблица mtr_cdr со столбцом idx. Если у меня есть

conn = engine.connect()
conn.execute('SELECT idx FROM mtr_cdr').fetchall()[:3]

, я получаю правильные значения: [(3,),(3,),(3,)] в этом случае, которые являются верхними значениями в столбце (на данный момент, столбец idx упорядочен, и есть несколькостроки, которые соответствуют одному и тому же idx).

Однако, если я попытаюсь:

conn.execute('SELECT idx FROM mtr_cdr ORDER BY RANDOM()').fetchall()[:3]

, я получу [(None,),(None,),(None,).

Я использую версию sqlalchemy1.2.9, если это поможет.

Какой подход может дать мне правильный результат, но распространяющийся на большую базу данных? В полной базе данных я ожидаю около 100 миллионов + строк, и я слышал, что ORDER BY RANDOM() (если я смогу заставить его работать) будет очень медленным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...