UserID UserName Password
1 abc 123
10 xyz 456
3 mno 254
SELECT MAX(UserId) AS UserId FROM UserLogin
このクエリを実行すると、10 ではなく 3 が返されます
すべての列は TEXT データ型です
UserID UserName Password
1 abc 123
10 xyz 456
3 mno 254
SELECT MAX(UserId) AS UserId FROM UserLogin
このクエリを実行すると、10 ではなく 3 が返されます
すべての列は TEXT データ型です
3
辞書式順序を考慮した最大値であるため、クエリが返されます ( で始まるものは で始まるものよりも大きいのと同様に、 で始まるものは で始まるもの3
よりも大きいと見なされます)。1
b
a
関数を使用してVAL
、TEXT 列を数値に変換します。
SELECT MAX(VAL(UserId)) AS UserId FROM UserLogin
ただし、パフォーマンスが気になる場合は、この列を数値にする必要があります。テーブル内のすべての行に対して関数を呼び出していることを考慮してください。また、この列が持つ可能性のあるインデックスは使用されません。
列の型が varchar や string ではなく、数値であることを確認してください。