Why does “_” (underscore) match “-” (hyphen)?

Because the underscore _ is a wildcard like the percent %, except that it only looks for one character.

SQL pattern matching enables you to use “_” to match any single character and “%” to match an arbitrary number of characters (including zero characters).

(From section 3.3.4.7. Pattern Matching in the MySQL documentation.)

If you want to use the underscore in like as a literal, you have to escape it:

select * from a where name like '%taz\_manual%.pdf%';

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)