Saya harus mencari manual PDF menggunakan kueri ini:
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)
Mengapa saya melihat salah satu dengan tanda hubung ketika saya menentukan namanya taz_manual%.pdf
?
LIKE
pernyataan. Ketika mengganti semua_
dengan-
:UPDATE sys_file set identifier = REPLACE(identifier, '_', '-') WHERE identifier LIKE '%\_%';
. Perhatikan bagian dalam melarikan diriLIKE
dan tidak ada bagian dalam melarikan diriREPLACE
. (Saya merasa aneh meskipun Anda tidak berada dalam konteks pola di dalam ganti ...)Saya memiliki masalah serupa dengan spasi dan tanda hubung saat mencocokkan string dengan pencocokan persis:
Kueri di atas tidak mengembalikan catatan apa pun di MySQL. Saya harus keluar dari spasi dan tanda hubung dan menggunakan
LIKE
bukan pencocokan tepat dengan sama dengan (=) sebagai berikut:sumber