2015-04-07 1 views
0

Я имею двух таблицGROUP_CONCAT() MySQL возвращает ограниченные символы

tblColorLibrary

id name 
1  test color 

tblColors

id libraryId colorCode name 
1  1   #fff  Prime Color 
2  1   #ddd  Secondry Color 
3  1   #E2CFC7 Favorite Color 

Ниже мой запрос:

$stmt ="SELECT a.id, a.isActive as isActive, a.name as title, GROUP_CONCAT(b.colorCode) as colors, GROUP_CONCAT(b.name) as name FROM ".$this->tblLibrary." as a JOIN tblcolors as b ON a.id = b.libraryId GROUP BY a.id ORDER BY b.id ASC"; 

Этот запрос будет RETU rn результат вроде этого

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [isActive] => Y 
      [title] => test 
      [colors] => #fff,#ddd,#E2CFC7 
      [name] => Prime Color, Secondry Color, Favorite Color 
     ) 

) 

Все идет нормально, пока у меня ограниченные записи. Когда у меня есть более 150 записей в tblColors, ключ имени дает только ограниченное количество символов. Не получать полные записи.

Я думаю, что будет ограничение в группе concat.

+2

'GROUP_CONCAT' имеет максимальную длину около 1024. Вы можете изменить это через переменные сервера. См. Здесь: http://stackoverflow.com/questions/2567000/mysql-and-group-concat-maximum-length –

+2

Проверьте 'group_concat_max_len' https://dev.mysql.com/doc/refman/5.0/en/server -system-variables.html # sysvar_group_concat_max_len –

+0

@pala_ да, вы правы, я проверил strlen ($ name), он говорит 1024 – Butterfly

ответ

1

Увеличьте значение group_concat_max_len в базе данных mysql. по умолчанию он установлен на 1024. Вы можете обновить его с помощью запроса

SET GLOBAL group_concat_max_len=100000 

и

SET SESSION group_concat_max_len = 1000000; 
+0

После добавления ответа он работает на моем локальном сервере, а не на реальном сервере, надеюсь, что у нас не будет привилегий установить это на реальном сервере, любую идею об этом? – Butterfly

+0

запустить этот запрос $ sql = "SET SESSION group_concat_max_len = 1000000;" перед вашим запросом mysql – Saty

+0

Да, я установил так, и он начал работать с локальным Wamp, но когда я переместил его на рабочий сервер, он не работает :-( – Butterfly

1

Проверьте значение group_concat_max_len и увеличить ее по мере необходимости.

show variables like 'group_concat_max_len'; 

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

  • Нет связанных вопросов^_^