我正在做一個搜索過濾器,并尋找一種方法來組合查詢 where 陳述句中的不同條件,如下所示:查詢應顯示 (1) 帶有符號“AATR”的所有訪問或 (2) 帶有符號“ACCT”的所有訪問或(3) 在 array_ids_scr 中具有篩選 id 的所有患者或 (4) 在 array_ids_std 中具有研究 id 的所有患者。我知道如何單獨寫每個陳述句,但我不知道如何組合它們。個人認為應該是
where("visits.symbol = 'AATR' OR visits.symbol = 'ACCT'")
where("patients.scr_id IN (?)", array_ids_scr)
where("patients.std_id IN (?)", array_ids_std)
我嘗試將它們組合如下,但它不起作用(語法錯誤或附近)
where("
visits.symbol = 'AATR'
OR
visits.symbol = 'ACCT'
OR
patients.scr_id IN #{array_ids_scr}
OR
patients.std_id IN #{array_ids_std}
")
有沒有辦法做到這一點?我正在使用導軌 6。
uj5u.com熱心網友回復:
處理IN結果查詢時應如下所示.. IN (1,2,3)。你把它放在那里的方式看起來像...IN [1,2,3]。為此,最好讓 ActiveRecord 使用?.
Active Record 將第一個引數作為條件字串,任何其他引數將替換其中的問號 (?)。
where("
visits.symbol = 'AATR' OR
visits.symbol = 'ACCT' OR
patients.scr_id IN (?) OR
patients.std_id IN (?)", array_ids_scr, array_ids_std)
您可以在此處閱讀檔案中的更多內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/328691.html
