MySQL like query escape character

like_wildcard_escape

워드프레스 post_name에 “/” 문자의 urlencode인 “%2F”가 들어가면 오류를 뱉는다는 걸 뒤늦게 알게 되었다.
그누보드에서 마이그레이션을 수작업으로 하다보니 이런 삽질을…

이를 위해 “%2F”를 “-“로 치환하도록 스크립트를 짜는데 생각해보니 “%”는 와일드카드로 인식되는 문제점이 있었다.
구글신에게 물어봐 “%”와 같이 escape시켜주는 것으로 해결했다.

그러는 과정에서 underscore “_” 문자도 like문 안에서는 1글자 와일드카드로 사용된다는 것도 배우게 되었다.
(preg문에서 “?”와 동급이라고 보면 될 듯)
이렇게 해서 짠 쿼리는 다음과 같다.

“select * from `{$wordpress_post_table}` where `post_name` like ‘%%2F%’;”

CC BY-NC-SA 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Leave a Comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.