Regen написав:1-ша версія
SELECT column FROM table where LENGTH(column)=5 // ну мені там треба буде вибрати рандомно 1 запис тому
2-га версія
SELECT column FROM table where LENGTH(column)=5 ORDER BY RANDOM() LIMIT 1
При використанні саме функції для певного поля, швидше за все, не використовується його індекс.
Судячи зі всього (якщо ви збираєтесь створювати додаткове поле, де буде всього лише 5 символів), то вам потрібно саме 5 конкретних символів. Якщо це 5 перших символів, то є можливість використовувати індекси без необхідності створювати додатково інше поле (звичайно ж, якщо тільки поле пошуку не надто велике).
Спробуйте таке:
SELECT column FROM table where column like '_____%'
По-ідеї (я таке в SQLite не перевіряв) це вибиратиме саме 5 перших символів (символ підкреслення в SQL для оператора like символізує один будь-який символ).
Для використання індексів, тут головне правило - не використовуйте функції, а при використанні оператора like символ процента не повинен іти попереду виразу (лише позаду).