Tenho que procurar um manual em PDF usando esta consulta:
root@localhost:test> select * from a where name like '%taz_manual%.pdf%';
+--------------------+------------------+-------------+
| name | description | size |
+--------------------+------------------+-------------+
| taz-manual-1.1.pdf | Manual v1.0 TA-Z | 31351902 |
| taz-manual-0.2.pdf | Manual v1.0 T1-A | 3578278 |
| taz_manual-2.0.pdf | Manual v2.0 GA-X | 542578278 |
etc........
+--------------------+------------------+-------------+
132 row in set (0.00 sec)
Por que estou vendo aquele com traços quando especifico o nome a ser taz_manual%.pdf
?
LIKE
declaração. Ao substituir tudo_
com um-
:UPDATE sys_file set identifier = REPLACE(identifier, '_', '-') WHERE identifier LIKE '%\_%';
. Observe o escape internoLIKE
e nenhum escape internoREPLACE
. (Eu acho estranho que você não esteja em um contexto de padrão dentro de substituir ...)Tive um problema semelhante com espaço e hífens ao combinar strings com correspondência exata:
A consulta acima não retornou nenhum registro no MySQL. Tive que escapar os espaços e hifens e usar em
LIKE
vez da correspondência exata com igual (=) da seguinte maneira:fonte