Поиск в mysql (MATCH ())

monk

Новичок
Поиск в mysql (MATCH ())

Пытаюсь найти все имена файлов в поле music с расширением .mp3

$db_query = mysql_query("SELECT * FROM `tables` WHERE MATCH (music) AGAINST ('mp3')");

Ничего не находит.

Это работает:
$db_query = mysql_query("SELECT * FROM `tables`");

Немогу понять в чем проблема, может синтаксическая ошибка?
 

Фанат

oncle terrible
Команда форума
может, и синтаксическая
ошибки выводит функция mysql_error()
а ещё лучше, если ты учишься составлять запросы, то делать это в консоли
 

monk

Новичок
Попробовал выполнить запрос в phpmyadmin:

SELECT *
FROM `tables`
WHERE MATCH (
music
)
AGAINST (
'mp3'
)
LIMIT 0 , 30

Ответ MySQL:
#1191 - Can't find FULLTEXT index matching the column list
 

Фанат

oncle terrible
Команда форума
наверное, в том, что ты не прочел документацию, прежде, чем пользоваться полнотекстовым поиском
 

Sergio

Новичок
Попробуй создать fulltext индекс на тех полях, по которым идет поиск.
CREATE FULLTEXT INDEX `индекс` ON `таблица` (`поле_1`, `поле_2`, ..., `поле_n`)

Если поиск идет по одному полю, то можно попробовать
SELECT * FROM таблица WHERE SUBSTRING(`поле`,-3) = 'mp3';
или LIKE

-~{}~ 14.08.05 16:21:

опоздал (.
 

Фанат

oncle terrible
Команда форума
не переживай.
ответы системы "на блюдечке с голубой каёмочкой" никогда не опаздывают.
человек как не понимал, что он делает - так и не понимает.
но зато теперь у него всё работает. ну не красота ли?
 

monk

Новичок
Sergio

Спасибо за вариант!
С полнотекстовым поиском тоже разобрался.
 
Сверху