Подчеркивание SQL в LIKE - PullRequest
       18

Подчеркивание SQL в LIKE

0 голосов
/ 28 ноября 2018

программистов!

На самом деле я не сталкивался с проблемой, но мне было интересно, как что-то сделать ... Если бы я хотел найти данные, начинающиеся с a и имеющие всего 3 символа, я бы написал:

SELECT Client_ID
FROM Clients
WHERE Client_ID LIKE 'a__'

У меня вопрос: а что, если я хочу слово, содержащее 3 символа, с _ в качестве первого символа?Как я могу заставить мой код понять, что первый символ - это подчеркивание, а не просто какой-либо существующий символ?

Приведенный ниже код даст мне любое слово, содержащее 3 символа, какими бы они ни были.Но что, если я хочу, чтобы client_ID начинался с '_', а затем содержал 2 других символа?

SELECT Client_ID
FROM Clients
WHERE Client_ID LIKE '___'

Спасибо за ваши ответы!

Ответы [ 4 ]

0 голосов
/ 28 ноября 2018

Я думаю, вам просто нужно выйти из _, используя [_], а затем добавить оставшиеся ___, чтобы захватить 3 символа.Может быть что-то вроде этого:

выберите Client_ID из клиентов, где ClientID похож на '[_] ___%'

Надеюсь, это поможет !!

0 голосов
/ 28 ноября 2018
SELECT Client_ID
FROM Clients
WHERE Client_ID LIKE '\_\_\_';
0 голосов
/ 28 ноября 2018

это будет работать:

SELECT Client_ID
FROM Clients
WHERE regexp_like(Client_ID,'^_{1}(.){2}$');
0 голосов
/ 28 ноября 2018

Вы можете избежать шаблонов в LIKE шаблонах.Я обычно определяю escape-символ в явном виде:

WHERE Client_ID LIKE '$___' ESCAPE '$'

Экранирующим символом по умолчанию является обратный слеш, так что это также должно работать:

WHERE Client_ID LIKE '\___'
...