2012-03-26 10 views
0

私はコースと呼ばれるテーブルを持っています。フィールドは次のとおりです。MYSQLでフィールドの最大値を見つけるにはどうすればよいですか?

私はそのカテゴリの最大のソート順の番号を検索し、その番号をインクリメントし、私の新しい行のために、この新しい番号を使用したいカテゴリを与えている私は何をしようとしています
id, category, sortorder, fullname, etc..... 

例:私はcategory = 30を持っており、1から10までの数字を返します。最高の数字ですので10を取り出したいと思いますが、各クエリで実際に最高の数字が何か分かりません。私が値10を得た後、私はそれに1を加えて、それを私の新しいコースに使用します。

どうすればよいですか?

ありがとう!

答えて

4

MySQLのMAX()機能を使用できます。

だから、のようなものです:

SELECT MAX(sortorder) as maximum FROM courses WHERE category = 10 
+0

を助けるかもしれない。これは動作しますが、私はあなたが集計を使用できないと思ったので、私は理解していませんWHERE句を持つ関数 –

+0

をWHERE句で使用することはできません。 HAVINGでそれらを使用する必要があります。 'MAX()'でSELECTを実行すると、私の答えで使用したようなWHERE節が完璧に動作します。 WHEREでMAX()を使用する場合は、「HAVING MAX(sortorder)= 10」のようなものを使用してください。 –

+0

ああ、わかります。 where句の中にそれらを使用することはできません!それをクリアしていただきありがとうございます。私はMySQLを使用して以来、大学の初年度からなっています! –

1

はMYSQLでmax functionを見てみましょう。

あなたの列が呼び出されるかわからしかし、このようなものはありません:

SELECT MAX(`sortorder`) AS `max` FROM `table` 
+0

しかし、それはすべての並べ替えを取得します。私はちょうど与えられたカテゴリにそれらを欲しい。 –

+0

さて、SELECTステートメントに 'WHERE'節を追加してください。 – Nick

+0

私はWHERE句で集合関数を使うことはできないと思った:S –

1

これは

SELECT MAX(sortorder) 
    FROM table_name 
    WHERE category = 10 
+0

これは私に何らかの理由で最も低い番号を与えています:/ –

+0

@JohnathanAuは編集された答えをチェックします。 – heyanshukla

関連する問題