Как конвертировать Comma Seperated Column в строки и добавить счетчик

У меня есть таблица с этими значениями

Таблица: Документы

id | document ----|------------- 1 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc 2 | doc.txt 3 | doc.txt , doc1.txt 4 | doc.txt , doc1.txt , doc2.rtf 5 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc 6 | doc.txt , doc1.txt , doc2.rtf , doc3.docx 7 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc 8 | doc.txt , doc1.txt , doc2.rtf 9 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc 10 | doc.txt , doc1.txt 

SQL FIDDLE SCHEMA

Мне нужен результат такой. Где id = 5

 Counter | docs ----|----------- 1 | doc.txt 2 | doc1.txt 3 | doc2.rtf 4 | doc3.docx 5 | doc4.doc 

Где id = 4

 Counter | docs ----|----------- 1 | doc.txt 2 | doc1.txt 3 | doc2.rtf 

Вы видите, что мне нужно взорвать разделенный запятой столбец и подсчитать, сколько значений есть. Мне не нравится эта схема, но я работаю над существующим проектом и не могу его изменить. Мне нужен счетчик для отображения в пользовательском интерфейсе. Так что необходим счетчик. Как я могу это сделать? Также я не могу сделать это на php-end, потому что я использую pyrocms, и мне нужно отображать его, используя pyrocms tage, который не позволяет мне использовать php в представлениях.

    Посмотрите на этот SQL FIDDLE , возможно, это то, что вы хотите. Вы должны использовать sequence вспомогательных таблиц

     SELECT * FROM (SELECT S.Id Counter, REPLACE(SUBSTRING(SUBSTRING_INDEX(document, ' , ', S.Id), LENGTH(SUBSTRING_INDEX(document, ' , ', S.Id - 1)) + 1), ' , ', '') docs FROM documents D, sequence S WHERE D.id = 3) A WHERE A.docs <> '' 

    используя хранимые процедуры, вы можете решить свою проблему. вот точный дубликат вашей проблемы уже решён

    Я боюсь, что нет простого способа создать SQL-запрос, также нет доступной функции разделения.

    Что вы можете сделать, так это создать свою собственную функцию, как описано здесь

    Вы также можете обрабатывать результаты непосредственно в php-коде.