Heim  >  Artikel  >  Backend-Entwicklung  >  关于数据库一个字段的排序问题,如何实现不重复的排序

关于数据库一个字段的排序问题,如何实现不重复的排序

WBOY
WBOYOriginal
2016-06-06 20:37:351129Durchsuche

假设数据库中有1-10的排序,现在我要插入一个1的排序,那这个字段的数据为:1,1,2,3,4,5,6,7,8,9,10,如何在插入的时候将重复的值自动+1,保证字段数据唯一并且有序的排序,最后结果为:1,2,3,4,5,6,7,8,9,10,11;

补充一下:数据有可能是这样的:1,2,2,3,4,5,5,5,6,6,8,9,9,99;当我插入个1,或者是2的时候,数据就会自动有序排序并且保证唯一不重复,假设插入2,排序结果为:1,2,3,4,5,6,7,8,9,10,11,12,13,14,99

回复内容:

假设数据库中有1-10的排序,现在我要插入一个1的排序,那这个字段的数据为:1,1,2,3,4,5,6,7,8,9,10,如何在插入的时候将重复的值自动+1,保证字段数据唯一并且有序的排序,最后结果为:1,2,3,4,5,6,7,8,9,10,11;

补充一下:数据有可能是这样的:1,2,2,3,4,5,5,5,6,6,8,9,9,99;当我插入个1,或者是2的时候,数据就会自动有序排序并且保证唯一不重复,假设插入2,排序结果为:1,2,3,4,5,6,7,8,9,10,11,12,13,14,99

看错题了, 应该自己判断是否重复再update吧。

<code>sql</code><code>UPDATE test SET sort=sort+1 WHERE sort>1;
</code>

其实你要实现这个排序功能,不一定要sort字段唯一。
你再加一个字段:modify_time,记录修改时间。

然后你排序依靠sort和modify_time就OK了:

<code>sql</code><code>ORDER BY sort DESC, modify_time DESC
</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn