Mercurial > hg > soundsoftware-site
comparison app/models/.svn/text-base/query.rb.svn-base @ 245:051f544170fe
* Update to SVN trunk revision 4993
author | Chris Cannam |
---|---|
date | Thu, 03 Mar 2011 11:42:28 +0000 |
parents | 8661b858af72 |
children | cbce1fd3b1b7 |
comparison
equal
deleted
inserted
replaced
244:8972b600f4fb | 245:051f544170fe |
---|---|
564 # Helper method to generate the WHERE sql for a +field+, +operator+ and a +value+ | 564 # Helper method to generate the WHERE sql for a +field+, +operator+ and a +value+ |
565 def sql_for_field(field, operator, value, db_table, db_field, is_custom_filter=false) | 565 def sql_for_field(field, operator, value, db_table, db_field, is_custom_filter=false) |
566 sql = '' | 566 sql = '' |
567 case operator | 567 case operator |
568 when "=" | 568 when "=" |
569 sql = "#{db_table}.#{db_field} IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")" | 569 if value.any? |
570 sql = "#{db_table}.#{db_field} IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")" | |
571 else | |
572 # IN an empty set | |
573 sql = "1=0" | |
574 end | |
570 when "!" | 575 when "!" |
571 sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" | 576 if value.any? |
577 sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" | |
578 else | |
579 # NOT IN an empty set | |
580 sql = "1=1" | |
581 end | |
572 when "!*" | 582 when "!*" |
573 sql = "#{db_table}.#{db_field} IS NULL" | 583 sql = "#{db_table}.#{db_field} IS NULL" |
574 sql << " OR #{db_table}.#{db_field} = ''" if is_custom_filter | 584 sql << " OR #{db_table}.#{db_field} = ''" if is_custom_filter |
575 when "*" | 585 when "*" |
576 sql = "#{db_table}.#{db_field} IS NOT NULL" | 586 sql = "#{db_table}.#{db_field} IS NOT NULL" |