Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

querying to check for integer values in ruby on rails

I want to execute this query in rails app

   Video.where("category= 'film' AND grant = 1").order('created_at DESC').page(params[:page]).per_page(10)

here grant stores an integer value.

and I am getting following error

    Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grant = 1) ORDER BY created_at DESC LIMIT 10 OFFSET 0' at line 1: SELECT  `videos`.* FROM `videos`  WHERE (category= 'film' AND grant = 1) ORDER BY created_at DESC LIMIT 10 OFFSET 0

thanks in advance

like image 263
rohith Avatar asked Jan 19 '26 11:01

rohith


1 Answers

The problem is with grant. GRANT is a reserved word in MySql. You should use back-ticks around them.

Video.where("category= 'film' AND `grant` = 1").order('created_at DESC').page(params[:page]).per_page(10)

will do the job i guess. Refer Reserved Words

like image 118
nbbk Avatar answered Jan 22 '26 02:01

nbbk