1

次のクエリがあります。

$query = "SELECT - AS -
         FROM -
         WHERE ID = '".$id."'
         ORDER BY 'PRIMARY' DESC
         LIMIT ".$start.", ".$limit."";

ただし、何らかの理由で、降順で並べ替えるように指示したにもかかわらず、クエリは常に昇順で返されます。

なぜこれが起こっているのか正確にはわかりません。phpMyAdmin を介してクエリを実行すると、正しく返されますが、PHP クエリは結果を降順でリストしていません。

注: クエリ内の - は、私が切り取ったデータベースからの名前です。実際のクエリでは、正しい名前が入力されます。

4

4 に答える 4

2

クエリは実際にはまったく順序付けられていません。すべての行で等しくなる
定数文字列で順序付けています。PRIMARY

于 2012-05-02T20:16:40.800 に答える
2

'PRIMARY'列で並べ替えたい定数値 (常に同じ) で結果を並べ替えているため、列を指定する必要があります。たとえば、

ORDER BY column1

列名がcolumn1 このように PRIMARY を使用できない場合は、それが列名である場合にのみ使用できます。この場合、あなたは書くでしょう

ORDER BY `PRIMARY`

as PRIMARYis mysql キーワード (主キー用)

気づく

`PRIMARY`

とは異なります

'PRIMARY'

これは定数値です

于 2012-05-02T20:17:25.037 に答える
0

一重引用符の代わりにバッククォートを使用するPRIMARY

$query = "SELECT - AS -
         FROM -
         WHERE ID = '".$id."'
         ORDER BY `PRIMARY` DESC
         LIMIT ".$start.", ".$limit."";
于 2012-05-02T20:16:01.880 に答える
-1

クエリをエコーアウトして、phpmyadmin に入力したクエリと一致することを確認しましたか?

于 2012-05-02T20:16:55.933 に答える