私の理解が正しければ、S.NO は結果の行番号にすぎず、PHP で追加されています。
クエリで結果が並べ替えられず、S.NO がデータベースのデータと関係がない場合、この列で並べ替えを行うことはできず、並べ替えを行う意味がありません。
説明
「ORDER BY xxx」のない SQL クエリは、ランダムな順序で結果を返します。SQL Server UNION - デフォルトの ORDER BY 動作とは
基本的に、これは、クエリを実行するたびに、結果が異なる順序で返される可能性があることを意味します。
追加している S.NO は、クエリから返された結果の順序に基づいていますが、この順序はランダムであるため、同じページを表示するたびに、同じレコードが別の位置、つまり別の S.いいえ
オプション
結果の順序が毎回一貫するように、結果を並べ替える列を指定します。必要に応じて、並べ替え順序を逆にすることもできます。S.NO は引き続き使用できますが、純粋にプレゼンテーション用です
または、SQL を使用して行の位置を計算します ( MYSQL クエリで行の位置を取得します)。ただし、この場合でも、行番号は結果の各行の位置に基づいています。no が存在する場合ORDER BY
、行番号は依然として「ランダム」であり、クエリが実行されるたびに同じ行が異なる S.NO / 行番号を取得する場合があります。
最後のオプションは、JavaScript を使用してソートすることです (他の人が提案したように)。ただし、「ランダム」な順序であるため、これはページに表示されているレコードに対してのみ実行できます。ページネーション (ページ x の y) を使用している場合、データベース テーブル全体を並べ替えるには、データベースに対する新しいクエリが必要になります (全体の「ランダム」の問題のために並べ替えることができません)。