SQLite3::SQLException:接近"LIKE":语法错误:您可以在sqllite3中使用多个OR吗?



尝试在 4 个不同的位置执行搜索查询,但是当我使用多个 OR 子句运行查询时,它会给我此错误。

SQLite3::SQLException: near "LIKE": syntax error: SELECT COUNT(*) FROM "movies" WHERE (title LIKE '%Iron%' or rating LIKE '%Iron%' or cast LIKE '%Iron%')

我当前的查询如下所示。

Movie.where('title LIKE ? or rating LIKE ? or cast LIKE ?', "%#{params[:search]}%", "%#{params[:search]}%", "%#{params[:search]}%")

如果我将其限制为仅单数 OR 子句,页面加载正常且没有错误,所以我假设它的 OR 语句太多,数据库无法处理?

>cast是一个关键字/保留字(用于转换类型的函数的名称(。 使用转义:

WHERE title LIKE '%Iron%' OR
rating LIKE '%Iron%' OR
"cast" LIKE '%Iron%'

或者,更好的是,重命名列。

保留字列表在这里。

最新更新