in reply to Re^4: Quoting Strings For SQL LIKE queries
in thread Quoting Strings For SQL LIKE queries

Yes, :-), I can certainly see why you'd get confused. There are sooo many levels of quoteing - perl quoting, SQL quoting, DBI quoting ... so lots of people do get confused about it. The SQL standard says that the proper way to quote an apostrophe is to double it so that two-apostrophes are really one literal apostrophe. MySQL and some other databases additionally allow you to use a backslash as an escape character so that backslash-apostrophe is the the same as two apostrophes, i.e. both are equal to one literal apostrophe.

Ok, so why didn't this work"SELECT name FROM practice WHERE name LIKE '%it\'s not a problem%' " ??? Well print it out and you'll see it doesn't contain a backslash :-) because now perl is seeing the backslash in the string and *perl* (not SQL) says backslash apostrophe is the same as apostrophe, so SQL never even sees the backslash.

Still confused? I am. That's why I use placeholders, they're simpler (and safer, and sometimes more efficient).

  • Comment on Re^5: Quoting Strings For SQL LIKE queries

Replies are listed 'Best First'.
Re^6: Quoting Strings For SQL LIKE queries
by Cody Pendant (Prior) on Dec 22, 2004 at 01:50 UTC
    I think I reached my final forehead-slap and I now really get it. Thanks for your patience.


    ($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss')
    =~y~b-v~a-z~s; print