статья про поиск в mysql на phpclub

berkut

Новичок
статья про поиск в mysql на phpclub

Прочитал статью http://phpclub.ru/detail/article/mysql_search
Мне всегда казалось, что доставать кол-во найденных строк куда правильнее с использованием SELECT COUNT(*) ..., чем способом, 2 раза описанным в статье:
PHP:
$query = "SELECT id FROM table WHERE field LIKE '%". str_replace(" ", "%' OR field LIKE '%", $good). "%'";
2:
PHP:
 mysql_num_rows(mysql_query("SELECT id FROM table WHERE field LIKE '%$v%'"));
Это что, я облажался? Или разницы никакой?
 

phprus

Moderator
Команда форума
berkut
Я тоже считаю что правильнее использовать COUNT(*), однако в этой статье мне больше всего не нравится использование запросов с LIKE, так как они не используют индексы (если запрос начинается с %) и поэтому работают медленно. Гораздо лучше использовать fulltext индексы.
 

Андрейка

Senior pomidor developer
phprus
а если вот взять и прочитать статью? (сам не читал, но просмотрел по диагонали)
 

phprus

Moderator
Команда форума
Андрейка
Я ее читал. COUNT() там упоминается всего 2 раза. А вот на счет LIKE я немного не прав, так как он активно используется только в начале статьи, а в конеце рассказывается про FULLTEXT.

Я считаю, что статья сильно устарела, так как уже давно можно уменьшить мин. длинну слова в файле my.ini без перекомпиляции MySQL и в ней FULLTEXT описан мягко говоря плохо. Даже про язык запросов который он поддерживает не сказано ничего.
 
Сверху