У меня есть SQL-запрос SELECT * FROM table WHERE column LIKE '%pdd%'
.
Проблема, я должен получить все результаты, исключая тех, которые запускаются с "pdd", которым я имею в виду, находят все, где "pdd" не вначале. Как это могло быть сделано?
Я действительно должен соответствовать "pdd", когда это не в начале столбца.
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.
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'
Вы можете оптимизировать запрос в зависимости от того, насколько часто они встречаются в вашей таблице.
If I understand your requirement correctly what you need is:
SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
Try:
SELECT * FROM table WHERE column NOT LIKE 'pdd%'