Для получения полного доступа
зарегистрируйтесь.
Сниппет,  SQL

MySQL: Получить между тегами результат


Функция вырезает все что находит от between_start до between_end и возвращает в виде результат. пригодится для ненормализованных данных в виде строки

CREATE FUNCTION `find_between_text`(`raw_data` TEXT, `between_start` TEXT, `between_end` TEXT)
	RETURNS text CHARSET utf8
	LANGUAGE SQL
	NOT DETERMINISTIC
	CONTAINS SQL
	SQL SECURITY DEFINER
	COMMENT ''
BEGIN
  RETURN SUBSTRING( raw_data, 
	 LOCATE(between_start, raw_data) + CHAR_LENGTH(between_start),
    LOCATE(between_end, raw_data, LOCATE(between_start, raw_data) + CHAR_LENGTH(between_start))-(LOCATE(between_start, raw_data) + CHAR_LENGTH(between_start))
	);
END

Пример использования

select find_between_text(raw_data_str,'<tag>','</tag>') as found_text from table_test
  mysql sql mysql between text

Автор


Gravatar image
Tutik Alexsandr
  • Репутация: 2
  • Сниппеты : 6
  • Ревизии : 0
Подписаться

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация