Инструкция MySQL LIKE для поиска подстроки в любом месте, кроме начала строки
У меня есть SQL-запрос SELECT * FROM table WHERE column LIKE '%pdd%'
.
Проблема в том, что мне нужно получить все результаты, исключая те, которые начинаются с "pdd" , и я имею в виду найти все, где "pdd" не в начале. Как это можно сделать?
Мне нужно сопоставить "pdd" , когда он не находится в начале столбца.
Ответы
Ответ 1
Я предполагаю, что вы имеете в виду все строки, которые соответствуют "pdd", кроме тех, где "pdd" находится в начале.
SELECT * FROM table WHERE column LIKE '_%pdd%'.
Подстановочный символ "_
" в предикатах LIKE
означает "один из символов", эквивалентный ".
" в регулярных выражениях.
Ответ 2
Если я правильно понимаю ваше требование, вам нужно:
SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
Ответ 3
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'
Вы можете оптимизировать запрос в зависимости от того, насколько часто это происходит в вашей таблице.
Ответ 4
Try:
SELECT * FROM table WHERE column NOT LIKE 'pdd%'