LINUX.ORG.RU

mysql подзапрос - обрезает символы


0

1

Есть таблица 29 записей с одинаковыми id:

text:
жвакин
локи - доки
локи-доки
лоддок
логдок
лод - док
лог - док
лок - док
лод-док
лог-док
лок-док
лод док
лог док
лок док
лоддог
логдог
лод - дог
лог - дог
лок - дог
лод-дог
лог-дог
лок-дог
лод дог
лог дог
loddoc
logdoc
locdoc
lod - doc
log - doc
loc - doc
lod-doc
log-doc
loc-doc
lod doc
log doc
loc doc
loddog
logdog
lod - dog
log - dog
loc - dog
log-dog
loc-dog
lod dog
log dog
локидоки
локи доки
локдок
локдог
лок дог
locdog
lod-dog
loc dog

делаю запрос

SELECT
GROUP_CONCAT(DISTINCT text  SEPARATOR ' | ') as text
FROM `table`
GROUP BY id

и получаем:

жвакин | локи - доки | локи-доки | лоддок | логдок | лод - док | лог - док | лок - док | лод-док | лог-док | лок-док | лод док | лог док | лок док | лоддог | логдог | лод - дог | лог - дог | лок - дог | лод-дог | лог-дог | лок-дог | лод дог | лог дог | loddoc | logdoc | locdoc | lod - doc | log - doc | loc - doc | lod-doc | log-doc | loc-doc | lod doc | log doc | loc doc | loddog | logdog | lod - dog | log - dog | loc - dog | log-dog | loc-dog | lod dog | log dog | локидоки | локи доки | локдок | локдог | лок дог | locdog | lod-dog | loc dog

Если же этот запрос сделаем подзапросом:

select text from
(
SELECT
GROUP_CONCAT(DISTINCT text  SEPARATOR ' | ') as text
FROM `table`
GROUP BY id
)
as s

То получим

жвакин | локи - доки | локи-доки | лоддок | логдок | лод - док | лог - док | лок - док | лод-док | лог-док | лок-док | лод док | лог док | лок док | лоддог | логдог | лод - дог | лог - дог | лок - дог | лод-дог | лог-дог | лок-дог | лод дог | лог дог | loddoc | logdoc | locdoc | lod - doc | log - doc | loc - doc | lod-doc | log-doc | loc-d

ВОПРОС: почему обрезается строка?

p.s. на большом количестве записей, показало, что режет не до определенного количества символов, а хаотично, но всегда постоянно чисто для каждой записи составленой из group_concat.

★★

режет не до определенного количества символов, а хаотично

наверняка не до определённого количества символов, а до определённого количества байт. utf-8.

unC0Rr ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.