MySQL LIKE query with underline

I have the following table images:

+----+--------------+
| id |   img_path   |
+----+--------------+
| 1  | abc_1.jpg    |
| 2  | abc_2.jpg    |
| 3  | abcde_1.jpg  |
| 4  | abcde_2.jpg  |
| 5  | abcdef_1.jpg |
+----+--------------+

I would like to select the entries that img_pathbegin with abc_, so I use the following query:

SELECT id FROM images WHERE img_path LIKE 'abc_%'

But it returns all 5 rows. How can I return only id= 1 and 2 (which img_pathstarts with abc_)?

+4
source share
1 answer

It turned out that it _is a special symbol. You must escape with a backslash .

SELECT id FROM images WHERE img_path LIKE 'abc\_%'

which returns 2 rows as expected

+6
source

Source: https://habr.com/ru/post/1529959/


All Articles