akokarev
@akokarev
Начинающий программист

Как в SQL задать шаблон поиска MAC адреса?

В таблице Tickets в поле Comment в свободной форме пишется текст. Среди всего прочего в этом тексте в вольной форме записаны MAC адреса. Нужно найти все строки содержащие разыскиваемый MAC.
Примеры текста:
Купили роутер f8f02804213e оплата нал
Замена роутера по гарантии. Старый 28:28:00:42:11:AA новый AA:BB:CC:55:66:77
Установлен пон D345.00ff.41ED
Купили ротер 28:28:00:55:66:77

запрос %28%28%00%55%66%77% находит не только 4 пример, но и 2.
% это любое число любых символов, а мне нужен 1, но не как обязательный один, а возможный один.
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT * FROM tickets 
WHERE UPPER( REPLACE( REPLACE( REPLACE( text, '.', '' ), ':', '' ), '-', '' )) LIKE '%282800556677%'

попадания под условие нечто типа "серийный номер 1F2828004211AA0065400121"
В таких случаях используется разделитель:
SELECT * FROM tickets 
  WHERE CONCAT(' ', UPPER( REPLACE( REPLACE( REPLACE( text, '.', '' ), ':', '' ), '-', '' )) , ' ')
       LIKE '% 282800556677 %'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
akokarev
@akokarev Автор вопроса
Начинающий программист
SELECT * FROM tickets t WHERE t.text REGEXP '([0-9A-Fa-f]{2}[.:-]?){5}([0-9A-Fa-f]{2})'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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