MySQL начинается с поиска проблемы - PullRequest
33 голосов
/ 07 марта 2012

У меня проблема с использованием подстановочного знака % с запросом MySQL.

http://www.w3schools.com/sql/sql_like.asp

Прочитав эту статью, я использую % и не получаю достаточночто я ожидал.

У меня есть ряд значений, таких как

1_1
1_2
2_1
2_2... etc

, включая

11_1
11_2

Теперь, в некоторых случаях я хочу вернуть именно течье значение = 11_2, или 1_2 и т. д. Это отлично работает

WHERE fieldName = '11_2'

и т. д. ... как и ожидалось

Однако в некоторых случаях я хочу найти все элементы, которые запускаютсяс 1 или всеми элементами, которые начинаются с 11

По ссылке w3Schools я ожидал

WHERE fieldName LIKE '1_%'

Чтобы найти что-нибудь, что конкретно начинается с 1_, поэтомув моем примере, возвращая:

1_1
1_2

НО, он также возвращает

11_1
11_2

Почему это так?И как я могу прийти?

1 Ответ

69 голосов
/ 07 марта 2012

Подчеркивание - это подстановочный знак для одного символа.Вам нужно будет изменить ваш SQL на что-то вроде:

WHERE fieldName LIKE '1%'

Или вы можете избежать подчеркивания

WHERE fieldName LIKE '1\_%' 
...