表中數據varchar和float轉化對filter結果的影響求助
表中某字段比如time_cost類型為varchar,filter查詢時篩選time_cost__gte='30'會導致結果不準,很多實際time_cost小于30的也被放入結果中,是和varchar和float轉化有關系嗎 怎么規避這種問題呢
表中某字段比如time_cost類型為varchar,filter查詢時篩選time_cost__gte='30'會導致結果不準,很多實際time_cost小于30的也被放入結果中,是和varchar和float轉化有關系嗎 怎么規避這種問題呢
2020-04-09
舉報
2020-04-15
不錯,學習很細心。varchar是字符串類型,time_cost__gte='30'相當于字符串與字符串比較,不是數字大小的比較。python中字符串大小比較的問題,google一下。
解決辦法:把time_cost字段類型改成int類,也就是ORM中用IntergerField,然后time_cost__gte=30,引號就不要了,數字與數字比較。