ホームページ  >  記事  >  バックエンド開発  >  データベースの指定ルールによるソートの問題について

データベースの指定ルールによるソートの問題について

WBOY
WBOYオリジナル
2016-08-04 09:21:43909ブラウズ

データベースにはモールの名前を格納する列ストアがあり、モールを Amazon を 1 位にして、他のモールをデータ作成時間でソートし、ページングが必要になります。
解決策はあります
MySQL はフィールドで並べ替える方法を提供しますが、フィールドにはデータベースにすでに存在するすべてのモール タイプが含まれている必要があります。そうでない場合、含まれていないモールは並べ替えを中断しますが、店舗の下にあるモール (日亜化学工業、など)が順次追加されていきますので、このSQL文は変化し続けます。そこで、何か良い解決策があれば教えていただきたいと思いました。
2 ストアのデジタル ID に対応するフィールドを追加し、デジタル ID で並べ替えます。ただし、この製品では、淘宝網と Amazon が 1 位にランクされることを望んでいますが、Chao Lingxi は日亜化学工業が 1 位にランクされることを望んでいます。混乱する?
何か良い計画があれば教えてください。

返信内容:

データベースにはモールの名前を格納する列ストアがあり、モールを Amazon を 1 位にして、他のモールをデータ作成時間でソートし、ページングが必要になります。
解決策はあります
MySQL はフィールドで並べ替える方法を提供しますが、フィールドにはデータベースにすでに存在するすべてのモール タイプが含まれている必要があります。そうでない場合、含まれていないモールは並べ替えを中断しますが、店舗の下にあるモール (日亜化学工業、など)が順次追加されていきますので、このSQL文は変化し続けます。そこで、何か良い解決策があれば教えていただきたいと思いました。
2 ストアのデジタル ID に対応するフィールドを追加し、デジタル ID で並べ替えます。ただし、この製品では、淘宝網と Amazon が 1 位にランクされることを望んでいますが、Chao Lingxi は日亜化学工業が 1 位にランクされることを望んでいます。混乱する?
何か良い計画があれば教えてください。

この質問には 2 つのフィールドが必要です: 1 つは重み、もう 1 つは並べ替えです
あなたは次のようになります

  1. 淘宝網: 重み: 100 並べ替え: 1,

  2. Amazon: 重量: 100 並べ替え: 2,

  3. 日亚: ウェイト: 100 ソート: 3

  4. その他: 重量: 1 種類: 1

  5. ...

あなたの SQL は次のように書かれています: select * from table order by weight * sort、これで問題は解決します。権限を変更したい場合は、重みを調整したり並べ替えたりすることができます

複雑な論理並べ替えはデータベース レベルで行うべきではなく、並べ替え可能な配列やマップなどのコード レベルで行う必要があります。JDK には並べ替えられた配列とマップが多数あります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。