我正在执行数据库搜索,如下所示:
Model.where("column_name ilike ?", "")
当我没有搜索任何内容时,它会像下面一样运行:
SELECT YEAR(STR_TO_DATE(LEFT(weekly_periods, 8), '%d/%m/%Y')) AS PeriodYear
, MONTH(STR_TO_DATE(LEFT(weekly_periods, 8), '%d/%m/%Y')) AS PeriodMonth
, SUM(Amount) AS TotalAmount
FROM my_table
GROUP BY PeriodYear, PeriodMonth;
这给了我所有的表格行。
当我的搜索参数为空时,我希望它运行如下:
{{1}}
我怎样才能做到这一点?
答案 0 :(得分:2)
好吧,只需检查params是否为空字符串:
Model.where("column_name ilike ?", abc.blank? ? '' : "%#{abc}%")
# or, more strict check
Model.where("column_name ilike ?", abc == '' ? '' : "%#{abc}%")