0

ここにこのクエリがあります:

$query_pag_data = "SELECT 
matching.date,
matching.points,
matching.time,
matching.location,
matching.epos_id,
matching.time_added,
rbpos_epos.epos_id,
rbpos_epos.location
FROM
matching
LEFT JOIN
rbpos_epos ON matching.epos_id = rbpos_epos.epos_id
WHERE
matching.user_id = ".$id_user." LIMIT $start, $per_page ORDER BY matching.time_added DESC";

ORDER BY 部分でエラーが発生しました。何が問題なのですか。どこに配置すればよいですか? ...

4

2 に答える 2

1

ORDER BY 句と LIMIT 句の順序を入れ替えました。ORDER BY 句が最初に来て、次に LIMIT 句が来ます。これはうまくいくはずです:

$query_pag_data = "SELECT 
matching.date,
matching.points,
matching.time,
matching.location,
matching.epos_id,
matching.time_added,
rbpos_epos.epos_id,
rbpos_epos.location
FROM
matching
LEFT JOIN
rbpos_epos ON matching.epos_id = rbpos_epos.epos_id
WHERE
matching.user_id = ".$id_user." ORDER BY matching.time_added DESC LIMIT ".$start.", ".$per_page;
于 2013-06-08T07:35:38.680 に答える
0

制限は常に結果の収集の最後に適用されるため、order by の後に適用されます。

すべての句を考えると、処理の順序は次のようになります

  • から
  • どこ
  • 選択する
  • オーダーバイ
  • リミット

したがって、WHERE 句のすべての条件に一致する最も近いレコード <= publishedOn が取得されます。

@credit : リチャード・ザ・キウィ

于 2013-06-08T07:34:42.947 に答える