Re: escaped underscore

Stefaan A Eeckels <[email protected]> Thu, 14 Sep 2006 18:22:18 +0200
Newsgroups gmane.comp.db.mckoi
Organization E.C.C. sa - Computer Consultants
Message-ID <[email protected]>
On Wed, 13 Sep 2006 18:33:51 -0700 (PDT)
Gonzalo "Díaz" <[email protected]> wrote:

> Does Mckoi understand escaped underscores in a LIKE
> statement? For example, 
> 
>   SELECT * FROM EMAILS_TABLE WHERE EMAIL LIKE '%\_%'
> 
>   ... so that it returns all email addresses
> containing underscores.

It does certainly support the escaped underscore, I tried it just now
with exactly the syntax you're giving above.

> I tried the backslash but it doesn't seem to work. I
> also tried a varied number of backslashes (2, 4, etc),
> to allow for Java backslash escaping, regular
> expressions, etc., to no avail.

Aha - you're trying to do this using ODBC and Java.
 
> If true, is there a workaround? I can use prepared
> statements, but still need to write the right SQL.

Here's what works, I tried it just now:

String query = "SELECT * FROM EMAILS_TABLE WHERE EMAIL LIKE '%\\_%'";

Here's the code I tried (setup stuff omitted):

 String query =  "select name from users where name like '%\\_%'";
 System.out.println(query);

 try {
     Statement stmt = edb.createStatement();
     ResultSet rs = stmt.executeQuery(query);
     while (rs.next()) {
         System.out.println("Name: " + rs.getString(1));
     }
     rs.close();
     stmt.close();
 } catch (Exception e) {
     System.out.println(e.getMessage());
 }

It correctly retieves the users with an underscore in their name from
my test McKoi database.

Take care,

-- 
Stefaan
-- 
As complexity rises, precise statements lose meaning,
and meaningful statements lose precision. -- Lotfi Zadeh 


---------------------------------------------------------------
Mckoi SQL Database mailing list  http://www.mckoi.com/database/
To unsubscribe, send a message to [email protected]