0
我有一個字符串列表(說s = ['1995','1996','1997']
)。我需要查找數據庫中的所有行,其中某列的前四個字符與該列表中的任何項匹配(例如1995-01-01
或1996-05-04
)。將子串匹配到django中的字符串列表
找到__in
,但它找到完全匹配。
我有一個字符串列表(說s = ['1995','1996','1997']
)。我需要查找數據庫中的所有行,其中某列的前四個字符與該列表中的任何項匹配(例如1995-01-01
或1996-05-04
)。將子串匹配到django中的字符串列表
找到__in
,但它找到完全匹配。
import operator
years = ['1995','1996','1997', ...]
query = reduce(operator.or_, [Q(year__startswith=year) for year in years])
results = queryset.filter(query)
這將使你SQL類似WHERE year LIKE '1995%' OR year LIKE '1996%' ...;
這mightn't perform well給出的數據集。您可能會獲得更好的性能使用extra()
手動編寫SQL奇怪的是,我剛纔回答another question與幾乎完全相同的代碼!