我正在嘗試在 GORM 中執行下一個查詢。SELECT * FROM PAINTINGS WHERE in_stock IN (TRUE, FALSE)*in_stock 是布爾值。我知道只有兩種類型,但我需要根據用戶是否選中兩個框進行過濾。在這種情況下,用戶檢查了第一個而不是第二個。我在文檔(https://gorm.io/docs/query.html conditions/string conditions/IN)中找到了一種方法:GetDB().Where("in_stock IN ?", []bool{true, false}).Find(&paintings)...但它不檢索信息。結果顯示一個空數組。還有另一種方法可以在 GORM 中使用“IN”嗎?附加信息:去 1.15.2數據庫mysql
2 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
所以,我找到了在 gorm-GO 中使用 IN 的方法。
它只需要在沒有 args 作為接口的情況下執行 where。所以我只是執行了嵌入輸入參數的查詢界面并刪除了“?”
這是代碼:
s := "in_stock IN (true, false)" GetDB().Where(s).Find(&paintings)
*我認為這不是一個好習慣,但它確實有效。

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
我知道這是一個老問題,但我一直在嘗試同樣的事情,我認為最好的做法Where("in_stock in(?)", []bool{true, false})是Where("in_stock IN ?", []bool{true, false})
另一個例子 :
func (d *DBAccess) GetRefOrderList(status []int8) (refOrders []models.RefOrders, err error) {
err = d.Table("ref_orders").Where("status in (?)",status).
Find(&refOrders).Error
return
}
- 2 回答
- 0 關注
- 557 瀏覽
添加回答
舉報
0/150
提交
取消