Method: Redmine::Database.like

Defined in:
lib/redmine/database.rb

.like(left, right, options = {}) ⇒ Object

Returns a SQL statement for case/accent (if possible) insensitive match



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/redmine/database.rb', line 69

def like(left, right, options={})
  neg = (options[:match] == false ? 'NOT ' : '')

  if postgresql?
    if postgresql_unaccent?
      "unaccent(#{left}) #{neg}ILIKE unaccent(#{right})"
    else
      "#{left} #{neg}ILIKE #{right}"
    end
  elsif mysql?
    "#{left} #{neg}LIKE #{right}"
  else
    "#{left} #{neg}LIKE #{right} ESCAPE '\\'"
  end
end