How can I make db_query SELECT LIKE case insensitive?
The typical way to accomplish this is to compare a lower-case version of you search string against a the lower-cased variant in the table. See below for an example using strtolower() and LOWER():

$mail = strtolower($mail);

$results = db_query(
 'SELECT email_address
  FROM email_address_table
  WHERE (LOWER(email_address) LIKE :mail)',
  array(':mail' =&gt; '%' . db_like($mail) . '%')
)-&gt;fetchAll();