1.8.7 :011 > User.find(:first).id
User Load (0.4ms) SELECT `users`.* FROM `users` LIMIT 1
=> 1
1.8.7 :012 > User.find(:first, :select => 'id')
User Load (0.3ms) SELECT id FROM `users` LIMIT 1
=> #<User id: 2>
私の側からすると... 完全に混乱しています。両方のクエリでユーザー ID 1 が返されるはずですよね? 私が知っているのは、データベースの最初のユーザーの ID が 1 であり、この「問題/奇妙な結果」が MySQL に関連していることを知っていることです。
SELECT * FROM `users` LIMIT 1;
= 1
SELECT id FROM `users` LIMIT 1;
= 2
SELECT id FROM `users` ORDER BY id ASC LIMIT 1;
= 1