ホームページ  >  記事  >  バックエンド開発  >  mysql ソート関連の問題

mysql ソート関連の問題

WBOY
WBOYオリジナル
2016-06-13 12:08:47924ブラウズ

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;

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