我想要做一個Like查詢匹配子字符串。我以前使用過這個:Rails LIKE查詢使用mysql
products = Product.where("title LIKE ? OR description LIKE ?", "%#{params[:s_term]}%", "%#{params[:s_term]}%")
它與sqlite3(不擔心現在的SQL注入)很好地工作。 但是,我只是切換到mysql,並且當我執行查詢時,由於查詢中的'%',它會對Encoding :: UndefinedConversionError(「\ xC2」從ASCII-8BIT轉換爲UTF-8)提出異議: 。有沒有辦法讓我逃避這一點,或者在我的查詢中以不同的方式執行此操作?
當您在rails控制檯中執行此命令時,您可以在這裏評論它生成的等效sql命令嗎?謝謝 –
我在控制檯得到了這個:'Product Load(142.3ms)SELECT'products'。* FROM'products' WHERE(title LIKE'%as%'或description LIKE'%as%') '爲了我想要做的事情!它只是接近實際代碼中的一個問題。 – Silvertail
如果我從我的代碼庫運行完全相同的代碼,rails會生成'Product Load(3.7ms)SELECT'products'。* FROM'products' WHERE(title LIKE'%as%'或description LIKE'%as%') ',但回到上面提到的錯誤! – Silvertail