2014-12-23 2 views
0

У меня есть столбец, который хранит информацию строки в формате конкатенация, такие как:разбор строки на основе столбцов

LOCATION_COLUMN 
[Country]*[city]*[town] 

Я хочу, чтобы извлечь из страны) до первой астры IX части, [Страна], при этом исключая [город] [город]. Я мог бы завершить это, используя язык сценариев, такой как php, который имеет отличные инструменты синтаксического анализа, но если бы мне захотелось выполнить задачу внутри mysql. Если посмотреть на документацию, я не могу найти какие-либо методы синтаксического анализа (похоже, некоторые плагины разбора для mysql), но я хотел бы сохранить базу данных так, как она используется для многих других вещей. Собственный синтаксис sql, такой как команды LIKE Я не верю, что буду использоваться, поскольку вам нужно знать персонажи, которые вы ищете, но в моем случае я не ищу конкретных персонажей, просто хочу извлечь детали страны. Это возможно?

+0

Строковые функции работают, как и в ответ при условии. В более общем плане, mysql поддерживает регулярное выражение в соответствии с http://dev.mysql.com/doc/refman/5.1/en/regexp.html – RobP

ответ

2

Предполагая, что вы имеете в виду, что компоненты отделены друг от друга звездочками, вы можете использовать:

select substring_index(location_column, '*', 1) as country 
+0

вы гений! Спасибо, что мне нужно! – user2924127

Смежные вопросы