Django Queryset - Могу ли я запросить на указанных c позициях в строке для поля? - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть поле таблицы с такими записями, как, например, 02-65-04-12-88-55.

Каждая позиция (разделенная -) представляет что-то. (В базе данных нет '-', именно так она отображается для пользователя).

Пользователи хотели бы выполнять поиск по заданной позиции c записи. Я пытаюсь создать набор запросов, чтобы сделать это, но не могу понять это. Я мог бы обрабатывать начальные и конечные значения, но все остальное - я понятия не имею.

В противном случае можно было бы разбить строку на '-', а затем выполнить запрос в каждой указанной c части поля (если это возможно).

Как пользователь может найти запись в поле, скажем, в позициях 0-1, 6-7, 10-11, а остальные подстановочные знаки и вернуть?

Возможно ли это? Я могу подойти к этому неправильно? Мысли?

1 Ответ

0 голосов
/ 26 февраля 2020

Вы можете использовать запрос something__like='__-__-__-__-88-__', но он, вероятно, будет не очень эффективным (поскольку базе данных придется сканировать все строки, чтобы найти совпадение).

Если вам нужно много этих запросов, было бы лучше разделить их на фактические поля (something_1, something_2, et c.)

...