私はこのクエリをかなりの時間プログラムで使ってきましたが、間違った結果を出すようになってきました。一意のLEVELごとに1つの列名を返し、次にそのレベルで見つかる最低のz_index値を返すことを期待しています。予想される結果であるGROUP BYクエリの最下位カラム値を返すmysql
ProductID level z_index
==============================
1 One 10
1 Two 20
1 Three 30
:
SELECT * FROM Conrad WHERE ProductID = '1' GROUP BY level ORDER BY z_index
それはこのような何かを返すために使用しました。しかし、それは今、これを返している:
ProductID level z_index
==============================
1 One 83
1 Two 224
1 Three 308
私はまだレベルごとに1つずつ取得するが、それは今、そのレベルのために見つかったz_index値を返しています。
MySqlで何か変わったのですか、または私のクエリが永遠に悪いことがありましたか?
アップデート土曜日1月21日:私はより多くの列に追加したときに今、私はクエリがz_indexのための正しい値が、file_nameにとfile_locに値を返す必要があります。名前は、レベルの最初の行からなるように見えると正しいz_index値を含む行ではありません。
何が起こったのですか?
SELECT ProductID, level, min(z_index), file_name, file_loc FROM Conrad WHERE ProductID = '1' GROUP BY level ORDER BY z_index
ProductID level z_index file_name file_loc
====================================================
1 One 10 wrong.png ?
1 Two 20 file.png ?
1 Three 30 names.png ?
あなたのクエリは永遠に悪かったです。それはよく書かれています。 – Strawberry
GROUP BYを使用する場合は、集計関数(http://www.w3schools.com/Sql/sql_functions.asp)をmin(z_index)のように使用してください。 – cSteusloff
また、z_indexのように見えます。 – Strawberry