2015-06-03 3 views
-3

У меня есть столбец в моей базе данных, где есть название города и название страны в этом формате New york,America. Я хочу запустить запрос на выборке с помощью функции взрывается, как, который мы используем в PHP для отдельных значений, как этот так, что я могу получить запятую значение, разделенныхphp explode like function in mysql

select explode(",",location) from address; 

Также с псевдонимом города колонна держит Нью-Йорк и псевдоним страны, владеющей ценностью Америки. Так что я могу использовать их в моей процедуре хранения и вставить эти значения в таблице ссылок в городе колонны и странах

+1

Отдельный? Или присоединиться? Ваше значение уже объединено в таблице, если я не читаю это неправильно («У меня есть столбец»). –

+1

Я думаю, что вы ищете взорванный вариант PHP. Не implode – DarkBee

+0

В php мы используем функцию 'explode()' для sepArate значений –

ответ

3

Вы можете на самом деле не «взорвать» или разделить на всех запятой, но вы можете разбить строку на любой запятая, используя SUBSTRING_INDEX.

SELECT SUBSTRING_INDEX('New york,America', ',', 1); 
-> New york 
+0

Я хочу разделить значения Colum, а не строку @Sjoerd – usama

+0

@usama, какая разница? это просто функция sql. –

+0

@vp_arth Разница заключается в том, что я хочу выбрать город, страну из местоположения colum и сохранить это в другой таблице colours city and country using store procedure – usama

0

Использование Группа CONCAT

SELECT GROUP_CONCAT(location) 
    FROM `address` 
+0

Прочтите комментарии к вопросу. –

+0

@Suraj не работает – usama

+0

Извините, я не видел комментариев. – Suraj

0

Вы также можете выбрать строку и сохранить его в виде строки, и использовать взрываются функцию, чтобы отделить значения, если вы собираетесь использовать саму функцию ,

+0

Я хочу, чтобы это работало в процедуре хранения mysql, не в php – usama

1
CREATE FUNCTION strSplit(x varchar(255), delim varchar(12), pos int) 
returns varchar(255) 
return replace(substring(
    substring_index(x, delim, pos+1), 
    length(substring_index(x, delim, pos)) + 1 
), delim, ''); 


select strSplit("aaa,b,cc,d", ',', 1) as second; 
> b 
+0

, где я должен определить эту функцию в моей процедуре магазина, чтобы я мог ее использовать – usama

+0

в вашей базе данных :) рядом с ваша процедура магазина ... –

+0

, и вы всегда можете напрямую использовать оператор возврата этой функции. –