Interestingly, I thought about the same problem yesterday,
I was looking at the difference of LIKE in postgres and mysql. Seems like LIKE in postgres is case sensitive and in mysql it's not. So you have to use ILIKE in postgres to get the same behaviour as LIKE in mysql. To make an application independent from its DBMS you need to do soemthing like "lower(field) LIKE lower(query)" (as emmanuel said).

And I have no idea how I can append a whitespace % to that lower(query) part :-)




Am 29.02.2008 um 23:11 schrieb Jonathan Rockway:

* On Fri, Feb 29 2008, Emmanuel Quevillon wrote:
Hi,

I'd like to perform a query where I'd like to cal SQL funciton on :

select * from foo where lower(field) = lower(query).

So I wondered if from a ResultSet::search method I could pass
attribute like 'case => lower' as described in SQL::Abstract::new
method?

Interestingly, we were discussing this on IRC yesterday and didn't come
up with a good answer.  I ended up doing:

  $rs->search({
      "UPPER(column)" => uc $variable,
  });

This has some problems, including not working with quoting enabled, and
the potential mismatch between UPPER() and uc.  It works for me with
ASCII on SQLite, though, so it's what I'm using :)

Regards,
Jonathan Rockway


_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]


_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to