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