sbh
@sbh

Как распарсить данные триггером перед вставкой mysql?

Добрый день.
В запросах приходят данные вида:
07-Mar-2020 18:11:34.456 queries: info: client 55.44.33.22#49230 (111.222.333.444.in-addr.arpa): view All_View: query: 111.111.111.111.in-addr.arpa IN PTR + (22.22.22.22)


Необходимо распарсить данные и зыписывать в таблицу logs соответственно данные
07-Mar-2020 18:11:34.456
55.44.33.22
111.111.111.111.in-addr.arpa

в поля:
date
client
request

Было бы оптимально это делать с помощью триггера MySQL Before Insert
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
@rotarepmipoleved
SUBSTRING_INDEX(string, delimiter, number) (https://www.w3schools.com/sql/func_mysql_substring...

SELECT
	SUBSTRING_INDEX("07-Mar-2020 18:11:34.456 queries: info: client 55.44.33.22#49230 (111.222.333.444.in-addr.arpa): view All_View: query: 111.111.111.111.in-addr.arpa IN PTR + (22.22.22.22)", " queries:", 1) as `date`,
	SUBSTRING_INDEX(
		SUBSTRING_INDEX("07-Mar-2020 18:11:34.456 queries: info: client 55.44.33.22#49230 (111.222.333.444.in-addr.arpa): view All_View: query: 111.111.111.111.in-addr.arpa IN PTR + (22.22.22.22)", "#", 1),
		" ",
		-1
	) as `client`,
	SUBSTRING_INDEX(
		SUBSTRING_INDEX(
			"07-Mar-2020 18:11:34.456 queries: info: client 55.44.33.22#49230 (111.222.333.444.in-addr.arpa): view All_View: query: 111.111.111.111.in-addr.arpa IN PTR + (22.22.22.22)",
			"query: ",
			-1
		),
		" IN PTR",
		1
	) as `request`


Результат:
5e63789219175851589352.png
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Вот именно такое в триггер лучше не пихать.... во избежание пулевых отверстий в коленях и дыр в подошвах от граблей...
Ответ написан
Ваш ответ на вопрос

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

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