表中數(shù)據(jù)varchar和float轉(zhuǎn)化對(duì)filter結(jié)果的影響求助
表中某字段比如time_cost類型為varchar,filter查詢時(shí)篩選time_cost__gte='30'會(huì)導(dǎo)致結(jié)果不準(zhǔn),很多實(shí)際time_cost小于30的也被放入結(jié)果中,是和varchar和float轉(zhuǎn)化有關(guān)系嗎 怎么規(guī)避這種問題呢
表中某字段比如time_cost類型為varchar,filter查詢時(shí)篩選time_cost__gte='30'會(huì)導(dǎo)致結(jié)果不準(zhǔn),很多實(shí)際time_cost小于30的也被放入結(jié)果中,是和varchar和float轉(zhuǎn)化有關(guān)系嗎 怎么規(guī)避這種問題呢
2020-04-09
舉報(bào)
2020-04-15
不錯(cuò),學(xué)習(xí)很細(xì)心。varchar是字符串類型,time_cost__gte='30'相當(dāng)于字符串與字符串比較,不是數(shù)字大小的比較。python中字符串大小比較的問題,google一下。
解決辦法:把time_cost字段類型改成int類,也就是ORM中用IntergerField,然后time_cost__gte=30,引號(hào)就不要了,數(shù)字與數(shù)字比較。