2010-03-07 2 views
15

Мне нужно использовать group_concat для создания списка значений, разделенных запятыми, но мне нужны значения для цитирования. Как мне это сделать?Как цитировать значения с помощью group_concat

Это:

425,254,431,53,513,13,1,13 

должны быть преобразованы в:

'425','254','431','53','513','13','1','13' 

ответ

33

Использование:

GROUP_CONCAT(CONCAT('''', your_column, '''')) 
+0

Спасибо OMG Ponies. Это работает как шарм. – jim

+0

Если мой подзапрос возвращает 1,2,3 в первой строке и 3,4 во второй строке и 9,2 в третьем, поэтому он не работает, можете ли вы предоставить мне что-то еще –

9

Вы можете процитировать элементы перед нанесением GROUP_CONCAT.

SELECT GROUP_CONCAT(CONCAT('\'', some_column, '\'')) 
FROM  some_table 
+0

+1: Вы были в начале –

+0

Спасибо Макс, я пытался решить, кому за это стоит. Такс так много! – jim

18

Использование MySQL функция строки QUOTE.

GROUP_CONCAT(QUOTE(`foo`)) `bar` 

Это будет обрабатывать случаи, когда сама строка содержит цитату.

+1

@OP, Сделать это как принятый ответ. – nehemiah

+0

@itsneo Принятый ответ - это то, что помогло OP решить исходную проблему. Это не обязательно «лучшее» решение. Используйте голоса, чтобы высказать свое мнение о наилучшем решении проблемы. – Gajus

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