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

WBOY
リリース: 2016-06-06 20:37:35
オリジナル
1169 人が閲覧しました

假设数据库中有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>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート