MySQL — как мне достать из БД из столбца определенное количество символов, но без тегов?
Я хочу достать, например, 300 символов. Это превью статьи. Чтобы прочитать всю статью, нужно перейти на страницу с ней (открыть ее). Проблема в том, что в БД могут в тексте использоваться теги. В php я их убираю (strip_tags). Но получается уже меньше 300 символов. Как я понял, нужно убирать их при выборке данных. Как мне это сделать? Помогите написать запрос.
Неправильный ответ: Доставайте больше и обрезайте
Правильный ответ: При сохранении создавайте в бд дополнительное свойство с уже почищенным текстом нужной длинны.
alexandrnevajno1, храните полный текст в идеале, разница в 10 кбайт в базе это не серьезно, а разбивка текста посередине тега доставит вам гораздо больше гемороя.
alexandrnevajno1, можно хранить полную статью, но голым, без картинок и тэгов. Кстати, это поле с текстовой копией статьи можно использовать не только для вывода превью, но и для поиска.
Ну можно написать функцию на SQL, которая будет вырезать теги, идентифицируя их по угловым скобкам. Конкретная реализация зависит от диалекта SQL, ну и вряд ли кто-то бесплатно возьмётся её делать... хотя, можно поискать на просторах Сети готовую. Хотя, я солидарен с ThunderCat