ホームページ  >  記事  >  バックエンド開発  >  mysqlの質問があります。クエリ結果(他のフィールドでソート)内の特定のフィールドの最大値の取得についてです。

mysqlの質問があります。クエリ結果(他のフィールドでソート)内の特定のフィールドの最大値の取得についてです。

WBOY
WBOYオリジナル
2016-06-23 14:10:571663ブラウズ

このような問題で助けを求めるたびに恥ずかしい思いをします... でも、解決策を見つけるためにマニュアルを調べる時間がないこともよくあります... もう一度連絡しなければなりません...

問題通常のクエリを作成し、フィールド a を押します。逆の順序に配置します。しかし、このクエリではフィールド b の最大値も取得したいのです
PHP には、最大キー値を直接取得する関数が用意されていないようです。多次元配列を自分で作成することは不可能ではありませんが、mysql でそれについて尋ねたいのですが、それを直接確認できますか (パフォーマンスの低下があまりないはずです。そうでない場合は、使用する方が良いでしょう) phpで計算します)

ありがとうございます


ディスカッションへの返信(解決策)

Mysqlはmax関数を提供しますが、これはクラスタリング関数であり、あなたのシナリオにはあまり適していません


ループは必要ありませんかデータを持ち出すときは? (max 関数を使用して) ループ内で実行するだけでは十分ではないでしょうか?

mysql には max 関数が用意されていますが、これはクラスタリング関数であり、シナリオには適していません


データを取得するときにループが必要ではありませんか? (max 関数を使用して) ループ内で実行するだけでは十分ではないでしょうか?

まあ、MySQL が不便な場合は、PHP を使用して計算します。現在、フィールド b の値を配列に抽出し、arsort() して最初の値を取得します

$m = 0; $ row = mysql_assoc($rs)) {

$res[] = $row; //これは通常のデータ受信です
$m = max($m, $row['b']) // b を計算します方法 列の最大値
}

?

質問させてください。MySQL にクエリを実行するとき、複数の where 条件の順序はクエリの効率に影響しますか?

レコードが 100 万件あると仮定します

id>500000 と b フィールドを <>"" と入力すると、 2 つの条件の位置が入れ替わると、効率は変わりますか?
インデックスがあるかどうかが重要です

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