Rails Where Condiction


Rails Where 条件语句查询

在某些情况下需要对大量的数据进行处理,可以使用 find_in_batches 方法进行处理

模糊查询

  • 单条件

User.where(“name LIKE ?”, “%#{search}%”) #查询包含某个字段

  • 数组查询

Api::V1::Heartbeat.where(“alarm_type in (?)”, types)

  • 多个条件

User.where(“name LIKE :search OR username LIKE :search”, search: “%#{search}%”)

User.where(“name LIKE = ? OR username = ?”, “%#{search}%”, “%#{search}%”)

  • 区间查询

User.where(“created_at >= :start_date AND created_at <= :end_date”, {start_date: params[:start_date], end_date: params[:end_date]})

User.where(created_at: (params[:start_date]..params[:end_date]))

joins

joins 和 left_outer_joins 区别

  • join 是自然连接 两个表都有数据才会有数据
  • left_outer_joins 左联 在左边的那个表有数据就会出来数据

Api::V1::Machine.joins(:vehicle).where(“api_v1_vehicles.fleet_id = ?”, params[:fleet_id])