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

问题描述 投票:0回答:1

尝试在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语句太多,无法处理db?

sql ruby database sqlite ruby-on-rails-5
1个回答
0
投票

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

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

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

保留字的列表是here

© www.soinside.com 2019 - 2024. All rights reserved.