Мускул: выбрать строки от двух до семи слов

J
На сайте с 08.06.2006
Offline
844
384

В таблице мускула есть строки от одного слова до 14.

Нужно выбрать все строки от двух до семи слов запросом

Какой строковой функцией воспользоваться? Или может есть или знаете готовое решение?

Спасибо!

[umka]
На сайте с 25.05.2008
Offline
456
#1

Добавляете колонку "word_count", считаете количество слов во всех строках, записываете в эту колонку, делаете выборку по этой колонке, не мучая мускул.

Лог в помощь!
J
На сайте с 08.06.2006
Offline
844
#2
[umka:
;13323521]считаете количество слов

какой функцией?

A
На сайте с 19.07.2010
Offline
130
#3
joost:
Или может есть или знаете готовое решение?

mysql word count

некоторые даже функции пишут для mysql. 🙄

обычным селектом, что-то типа

select content, (LENGTH(`content`) - LENGTH(REPLACE(`content`, ' ', ''))+1) AS 'Wordcount'
from table

перед запуском запроса:

1. уберите сначала из поля `content` начальные/конечные пробелы - функция trim()

2. замените подряд идущие пробелы на один пробел - функция replace()

Upd: ради интереса запустил этот запрос на дохлой впске, табличка у меня на 11846 строк

первый запуск(т.е. без кеширования)

Отображает строки 0 - 49 ( 11,846 всего, Запрос занял 0.0164 сек.)

последующие запуски, уже попало в query_cache

Отображает строки 0 - 49 ( 11,846 всего, Запрос занял 0.0002 сек.)

на табличке побольше, холодный запуск/кеш:

Отображает строки 0 - 49 ( 1,782,691 всего, Запрос занял 0.0028 сек.)

Отображает строки 0 - 49 ( 1,782,691 всего, Запрос занял 0.0002 сек.)

.............

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий