簡體   English   中英

使用Ruby數組的SQL查詢IN

[英]SQL query IN using Ruby array

我在ruby 2.0.0中有一個數組, @temp = [3, 4]我想在SQL IN語句中使用它。 所以我希望刪除括號( [, ] )。

我的SQL查詢:

SELECT E.id,E.name, CEU.attempt, E.total_mark, CEU.has_attended as attendance, CE.id as categoryexamId, CE.examtype_id as examType, CU.id as categoryuserId, U.name as username

      FROM exams E
      Inner Join categoryexams CE on E.id = CE.exam_id
      Inner Join categoryexamusers CEU on CE.id = CEU.categoryexam_id
      Inner Join categoryusers CU on CEU.categoryuser_id = CU.id
      Inner Join categories C on CE.category_id = C.id
      Inner Join users U on CU.user_id = U.id
      Inner Join examtypes ET on CE.examtype_id = ET.id
      WHERE CE.category_id = #{category_id} AND CEU.has_attended = 1 AND U.id = #{user} AND CE.currentyear = #{academicYear} AND CE.examtype_id = #{examtype}" + (@temp.blank? ? "" : " AND CEU.categoryexam_id NOT IN (#{@temp})") +
      " Group By CE.id;

如果要將其用作查詢所在的字符串。 你可以把它寫成:

@temp.join(',')

希望,它會奏效。

使用Active Record,您可以在使用“哈希條件”格式時直接使用數組,它會自動將其轉換為正確的SQL:

MyModel.where(column: [3, 4])

請參閱Active Record查詢“子集條件”2.3.3中的Rails指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM