将两个数据库列组合到订单数据

时间:2016-04-05 15:40:38

标签: ruby-on-rails ruby database

我有Rails模型User,其中我有多个属性,如idfirst_namelast_name等,现在我要解决的问题是我想要的通过组合(first_name + last_name)组合来获取用户并订购它们。我考虑了一段时间,但认真地说,我甚至没有一个遥远的线索。谢谢

3 个答案:

答案 0 :(得分:2)

对于MySQL:

User.order('CONCAT(`first_name`, `last_name`)')

答案 1 :(得分:0)

滑轨:

JDK 7u71

' .order'将字符串或数组作为参数。然后,您可以组合多个列和方向。

答案 2 :(得分:0)

逻辑方面,没有必要加入/连接数据以对其进行排序。作为优先级,主排序字段将在主排序的上下文中设置第二种排序的上下文和范围。只需选择第一个排序列,然后选择下一个排序列作为子排序,依此类推。例如:

          (Sort col 1)  (Sort col 2)
Rec ID 22 Adam          Adam
Rec ID 10 Apple         Aaron
Rec ID 01 Apple         Volar
Rec ID 78 Cal           Adam
Rec ID 42 Cal           Volar 
Rec ID 19 Cookie        Zeta

因此,这样的事情会起作用

User model {
  scope :order_by_full_name, -> { order("first_name ASC", "last_name ASC") }  
{

Controller {
  @sorted = User.order_by_full_name
}