Лично я использую следующий метод, он будет использовать индексы:
оператор '(' 1 ',' 12 ',' 123 ',' 1234 ',' 12345 ',' 123459 ',' 1234599 ',' 12345999 ',' 123459999 ')'
должен быть сгенерирован клиентом
SELECT * FROM whatever WHERE prefix in
('1','12','123','1234','12345','123459','1234599','12345999','123459999')
ORDER BY length(prefix) DESC LIMIT 1;