Представьте, что у меня есть такая таблица:
id | value
----|------
1 | 1200
2 | 3450
3 | 1230
4 | 1245
5 | 4512
И id
, и value
являются Целыми числами , теперь я хочу отфильтровать все строки, которые начинаются с value
с 12
, в данном случае мне нужны следующие идентификаторы: 1,3,4
.
Я придумаю несколько разных способов сделать это:
- Приведите
value
поле к String
, а затем используйте LIKE
или regex
для фильтрации
- Используйте
div
, чтобы разделить эти значения на 100, а затем сравнить
- Используйте
Shif-Right
, чтобы сместить эти значения на 2, а затем сравнить
В первом случае я не совсем уверен в производительности, потому что работа со строками занимает больше всего времени.
В третьем случае я не знаю, как это сделать или вообще возможно сделать что-то подобное?
Как правило, я хочу знать, как лучше это делать и как? Есть ли лучший способ, который я не мог найти?
Кроме того, я использую Postgres и работаю с SQLalchemy ORM,
поэтому будет принят либо запрос SQL, либо запрос SQLalchemy.