mysql の並べ替えの問題
mysql はデータ リストをクエリします。たとえば、このデータ リストは 1 ページに 5 つのレコードがあります
<br />$page = $_REQUEST['page'];<br /><br />select * from user limit ($page-1)*5,5;<br />
ログイン後にコピー
。たとえば、$user_list とします。次に、この user_list
<br />foreach($user_list as $k=>$v){<br /> // 然后根据某函数比如说 aa 计算出一个新的字段cc<br /> $user_list[$k]['cc'] = aa($v['id']);<br />}<br />
ログイン後にコピー
をループし、cc フィールドに従ってユーザー テーブルを並べ替えます。発生する問題は、リストがページ分割されていることです。最初のページの並べ替えは通常、小さい
から大きい順に並べ替えられますが、2 番目のページをクリックすると、
ccは頻繁に変更されるフィールドなので、計算する必要があります。
-----解決策のアイデアを教えてください。 ------------------
一時テーブルの作成を使用します temp
は一時テーブルを作成し、cc を計算して temp のフィールドとして保存します。次に、一時テーブルをソートしてページングします。
------解決策----------------------
部分を読んだだけです データはすでに削除されています
距離で並べ替える必要がある場合は、次のようにすることができます。
テーブル内に、緯度と経度を格納する X フィールドと Y フィールドがあると仮定します。販売者はそれぞれ
$x、$y はユーザーの緯度と経度を表します
次に、ユーザーから * を選択します
ORDER BY abs($x-X), abs($y-Y)
制限 ($page- 1)*5,5;