Оператор MySQL LIKE для нахождения подстроки в любом местоположении кроме запуска строки

У меня есть SQL-запрос SELECT * FROM table WHERE column LIKE '%pdd%'.

Проблема, я должен получить все результаты, исключая тех, которые запускаются с "pdd", которым я имею в виду, находят все, где "pdd" не вначале. Как это могло быть сделано?

Я действительно должен соответствовать "pdd", когда это не в начале столбца.

12
задан Air 21 August 2014 в 23:27
поделиться

4 ответа

I assume you mean all rows that match "pdd" except those where "pdd" is at the beginning.

SELECT * FROM table WHERE column LIKE '_%pdd%'.

The "_" wildcard in LIKE predicates means "one of any character," equivalent to "." in regular expressions.

22
ответ дан 2 December 2019 в 04:53
поделиться
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'

Вы можете оптимизировать запрос в зависимости от того, насколько часто они встречаются в вашей таблице.

4
ответ дан 2 December 2019 в 04:53
поделиться

If I understand your requirement correctly what you need is:

SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
5
ответ дан 2 December 2019 в 04:53
поделиться

Try:

SELECT * FROM table WHERE column NOT LIKE 'pdd%'
0
ответ дан 2 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: