[support] query, like and %s
Earnie Boyd
earnie at users.sourceforge.net
Fri Sep 4 12:24:04 UTC 2009
Quoting Ivan Sergio Borgonovo <mail at webthatworks.it>:
>
> $query = "SELECT DISTINCT sum(re.field_rows_ext_quantity) as q,
> re.nid, n.title from content_field_rows_ext re JOIN node n on
> re.nid = n.nid where lower(field_rows_ext_brand) like lower('%%%s%%')
> group by re.nid, n.title";
> $res = db_query($query,$marca);
>
> - better you add all the group by otherwise it is not easy for the
> DB to understand what you want and in some cases it may be
> impossible. Some DB accept this sloppy syntax but that doesn't
> make it less sloppy or non deterministic.
> - use lower and you may exploit some functional index if any
> - count the % properly and decide what are you really looking for:
> '%pino', 'pino%, '%pino%' (I guess the later).
>
The use of lower() may be unnecessary in some databases if the data
column is case insensitive; e.g.: Drupal on MySQL defaults to a
collation of utf8_general_ci. In which case you will get all of the
pino it if is Pino, pIno, or etc. without using the lower() function.
--
Earnie
-- http://r-feed.com/ -- http://for-my-kids.com/
-- http://www.4offer.biz/ -- http://give-me-an-offer.com/
More information about the support
mailing list