English 中文(简体)
铁路:使用名称——触发MySQL“in”的镜
原标题:Rails: Using named_scope which triggers a MySQL "in"

<>proBLEM>:

我想提出一个问题,这将引发类似的东西。

select * from users where code in (1,2,4);

缩略语


www.un.org/Depts/DGACM/index_spanish.htm WHAT I TRIED:

这是一部单一的法典:

named_scope :of_code, lambda {|code| {:conditions => ["code = ?", code]}}

我尝试过这样的事情。

named_scope :of_codes, lambda {|codes| {:conditions => ["code in ?", codes]}}

送交

user.of_codes( (1,2,4) )

it triggers select * from users where code in (1,2,4) which raises a MySQL error because of the extra quotes.

<PS:Ideally I 我想 送<>code>user.of_codes ([1,2,4]

最佳回答

这将只是找到工作,而且不会使你遭受到卡片注射袭击:

named_scope :of_codes, lambda { |codes|
  { :conditions => [ code in (?) , codes] }
}

User.of_codes([1, 2, 3])
# executes "select * from users where code in (1,2,3)"

如果你想稍微增加一点点,你可以这样做:

named_scope :of_codes, lambda { |*codes|
  { :conditions => [ code in (?) , [*codes]] }
}

然后,你可以打上<代码>。 www.un.org/chinese/ga/president

问题回答

最简单的办法是在条件而不是阵列中使用 has:

named_scope :of_codes, lambda { |*codes| { :conditions => { :code => codes } } }

这将按预期运作。

User.of_codes(1, 2, 3) # => SELECT ... code IN (1,2,3)
User.of_codes(1) # => SELECT ... code IN (1)

页: 1

named_scope :of_codes, lambda {|codes| {:conditions => ["code in "+codes]}}

以及

user.of_codes( (1,2,4) )

参考文件

named_scope :of_codes, lambda {|codes| {:conditions => ["code in (?) ", codes]}}

以及

user.of_codes([1,2,4])




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...