下記のテーブルからuriaが最大のものを取得する際、
mysql
1MariaDB [db1]> select * from tb; 2+------+------+------+ 3| bang | uria | tuki | 4+------+------+------+ 5| A103 | 101 | 4 | 6| A102 | 54 | 5 | 7| A104 | 181 | 4 | 8| A101 | 184 | 4 | 9| A103 | 17 | 5 | 10| A101 | 300 | 5 | 11| A102 | 205 | 6 | 12| A104 | 93 | 5 | 13| A103 | 12 | 6 | 14| A107 | 87 | 6 | 15+------+------+------+
select * from tb where uria in (select max(uria) from tb);
というSQL文で取得できます。
mysql
1+------+------+------+ 2| bang | uria | tuki | 3+------+------+------+ 4| A101 | 300 | 5 | 5+------+------+------+ 61 row in set (0.04 sec)
ところでselect bang,max(uria),tuki from tb;
というSQL文を発行すると
mysql
1+------+-----------+------+ 2| bang | max(uria) | tuki | 3+------+-----------+------+ 4| A103 | 300 | 4 | 5+------+-----------+------+ 61 row in set (0.00 sec)
というレコードが取得できます。
カラムbangとtukiの値は、tbテーブルの一番上の部分から、uriaは、関数の通りtbテーブル内で一番大きい数を取得しています。
ここで、素朴な疑問なのですが、なぜ、一番上の部分から取得しようとしたのでしょうか。仕様と言われるとそれまでですが、何か理由があるのでしょうか。
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。