私は列「Rechnungnr」と「日」
例204分の2016、202分の2016、100分の2016、12分の2015、231分の2016 と表を持っていると私は最後の必要があります最高の数字。ここ - > 2016/231ORDERBY MYSQL構文間違ったデータ
SELECT * FROM TABLE Where YEAR(Date) = '2016' ORDER BY length(`Rechnungnr`) DESC LIMIT 1
しかし
Greetz、マルト
私は列「Rechnungnr」と「日」
例204分の2016、202分の2016、100分の2016、12分の2015、231分の2016 と表を持っていると私は最後の必要があります最高の数字。ここ - > 2016/231ORDERBY MYSQL構文間違ったデータ
SELECT * FROM TABLE Where YEAR(Date) = '2016' ORDER BY length(`Rechnungnr`) DESC LIMIT 1
しかし
Greetz、マルト
char_length()の組み合わせにrechnungnrの値を使用囲まれた列名の日付を使用してみてください:(機能していないthatsのこのように最大値を得る:
SELECT * FROM TABLE
Where YEAR(Date) = 2016 ORDER BY char_length(`Rechnungnr`) DESC, `Rechnungnr` DESC LIMIT 1
char_length()は、Rechnungnr
フィールド内の文字数で結果を並べ、同じ長さの文字列内で、フィールド自体の値で並べ替えます。既存のデータセットで
がbacktics
SELECT * FROM TABLE Where YEAR(`Date`) = '2016' ORDER BY length(`Rechnungnr`) DESC LIMIT 1
(私が正しく、スキーマを理解していれば)あなたは、今年の日を取得するには、このような何かをしようとint型にキャストして、ソートのことができます。
SELECT *, CAST(RIGHT(LENGTH(`Rechnungnr`) - (INSTR(`Rechnungnr`, '/') + 1)) AS UNSIGNED) AS `DayOfYear` FROM TABLE Where YEAR(Date) = '2016' ORDER BY `DayOfYear` DESC LIMIT 1
たものではありませんmysqlの日付を使用するため、実際のmysqlの日付/時刻の値に変換するまで、mysqlの日付関数を使用することはできません。それらは文字列です。 lengthは、ある値の文字列表現の長さを示します。 (999)は長さ(000)とまったく同じです - 長さを使って "最高の数"、 "最長の数"しか使用できません –
ああ、私は "/"を置き換えて数字にキャストできますか?最高の数でソートしますか? –
日付を正しく保存する – Strawberry