Saturday, March 12, 2022

[FIXED] mysql LIKE with double percent

Issue

I just debugging a legacy code and I found a strange part in it. Does anybody has an idea, what does the following mean in the MYSQL string?

full_name LIKE '%%{fullname}%%'

Solution

As in the answer Mihir Dave's comment links to, there's no difference to SQL if you pass %% instead of %. Since a single % matches zero or more characters, then each of the metacharacters in %% would also match zero or more, and ultimately the same string would match one way or another.

But I'd guess your legacy code is pre-Python 2.6 that uses % as a metacharacter in string formatting, and you have to double it like %% to get a single literal % character.

See also:



Answered By - Bill Karwin

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.