在一些Rails代码中,我发现了以下几行:
User.where('created_at >= ?', '2018-10-10').count
# which results in:
SELECT COUNT(*) FROM "users" WHERE (created_at >= '2018-10-10')
=> 1234User.where('users.created_at >= ?', '2018-10-10').count
# which results in:
SELECT COUNT(*) FROM "users" WHERE (users.created_at >= '2018-10-10')
=> 1234使用WHERE users.created_at和WHERE created_at有什么区别吗?
发布于 2019-12-23 14:10:26
这个案子没什么区别。
您所看到的虚线符号称为限定列名。
在示例查询中使用限定列名没有好处,因为您只有一个表。显然,created_at列属于哪个表。
但是,如果您有一个带有JOIN等的更复杂的查询,最好用它们所属的表限定每个列,以防多个表具有同名的列。
https://stackoverflow.com/questions/59456551
复制相似问题