耐心去解决问题

刚才外地回来。经过紧张的通宵式工作,总算项目告一段落了。

中间发现一个问题。就是一个列表的结果返回不准确。

库是MySQL。

发现结果不准确后,开始对查询SQL进行限制。增加orderby ,测试了一下,发现没问题就提交了。

过了一天,又有报这类问题的,但是经过多次测试,无法复现。

经过查询资料,发现MySQL排序本身就是不准确,但是这不是结果错误的原因。

MySQL结果不准确,可以用程序来修正。mysql要保证结果顺序的唯一性,要orderby 排序字段,另加一个唯一列(自增ID最好)。

mysql 时间转化为时间戳 UNIX_TIMESTAMP(字段)这时候,这个字段就可以排序了,order by UNIX_TIMESTAMP (XXX) desc。

这时候,mysql的问题解决了。

asp.net webapi 返回结果的时候,发现对象排序是使用的第一个属性进行字符串排序,这个就有问题了,目前的项目model返回的第一个列是ID,guid,非自自增。

也会造成排序混乱(可能)。

现在解决方式是,model第一个属性为排序专用字段。字段的值是整形数(int)。

大概如下。

int index=1;

xxx.sortKey=index;

index++;

来保证顺序。

经过结果比对,结果正常(结果是专门挑选的出问题的数据进行测试的,算是直接回归问题部分)。

原文地址:https://www.cnblogs.com/wcLT/p/5606028.html