Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Ошибка в запросе!


Автор: CruorVult 20.3.2009, 21:31
Вот запрос:
Код

SELECT id,description,author,text,date,mini_img,title,view FROM data WHERE MATCH(text) AGAINST('$search') 


вот ошибка: 
Can't find FULLTEXT index matching the column list

Подскажите в чем причина ошибки!

Автор: NNaarreekk 20.3.2009, 22:23
CruorVult, измени название строк text и date на text1 и date1, наверно сработает! smile 

как ты видишь в твоем посте они другим цветом показаны, потому-что это специальные названия!

Автор: enof 20.3.2009, 22:26
NNaarreekk, правильнее будет названия полей и таблиц в в апострофы заключить.

Автор: NNaarreekk 20.3.2009, 22:33
enof, спасибо за идею!
А то я все время думаю как бы назвать чтоб случаем не совпало, хотя всегда в апострофах пишу! smile 

P.S. А апострофы разве не ' или все таки `?

Автор: enof 20.3.2009, 22:35
NNaarreekk, 
' - одиночная кавычка
` - апостроф
вроде так.

Автор: NNaarreekk 20.3.2009, 22:42
ОК! Спасибо!smile

Автор: skyboy 21.3.2009, 12:13
Цитата(CruorVult @  20.3.2009,  20:31 Найти цитируемый пост)
Подскажите в чем причина ошибки!

покажи CREATE TABLE. Думается мне, кроме того, что у тебя для имени полей используются зарезервированные слова, у тебя ещё fulltext index не создан(fulltext работает только для myisam таблиц)

Автор: CruorVult 21.3.2009, 13:35
Цитата(NNaarreekk @  20.3.2009,  22:23 Найти цитируемый пост)
измени название строк text и date на text1 и date1

Поменял, результат тотже. В других запросах нормально работало с text и date .
Цитата(skyboy @  21.3.2009,  12:13 Найти цитируемый пост)
покажи CREATE TABLE

Немогу,т.к. создавал БД в phpmyadmin.
Цитата(skyboy @  21.3.2009,  12:13 Найти цитируемый пост)
index не создан

Теперь понял в чем проблема. Только для текстового поля немогу создать индекс:

SQL-запрос: 

ALTER TABLE `data` ADD INDEX ( `text1` ) ;


Ответ MySQL:  
#1170 - BLOB/TEXT column 'text1' used in key specification without a key length

Автор: CruorVult 21.3.2009, 13:59
Странно но все работает!!! smile 
Хотя запрос 
Код

ALTER TABLE `data` ADD INDEX ( `text1` ) ;
 не сработал 

Автор: unicross 21.3.2009, 14:02
Индекс FULLTEXT создается так:
Код
ALTER TABLE `Таблица` ADD FULLTEXT `Название_индекса` (`Поле`);


Цитата(CruorVult @  21.3.2009,  13:35 Найти цитируемый пост)
SQL-запрос: ALTER TABLE `data` ADD INDEX ( `text1` ) ;

Для такого индекса необходимо указать длину!
Код
ALTER TABLE `Таблица` ADD INDEX `Имя_индекса` (`Поле`(Количество_символов));


Автор: ksnk 21.3.2009, 14:39
Цитата

Цитата(skyboy @  21.3.2009,  12:13 )
покажи CREATE TABLE

Немогу,т.к. создавал БД в phpmyadmin.

В PHPMyAdmin'е можно сделать для этой таблицы Экспорт без данных. Получится запрос Create table

Автор: CruorVult 21.3.2009, 16:43
Добавлено @ 16:43
Цитата(ksnk @  21.3.2009,  14:39 Найти цитируемый пост)
В PHPMyAdmin'е можно сделать для этой таблицы Экспорт без данных. Получится запрос Create table

Спасибо, теперь буду знать  smile 

Автор: bars80080 21.3.2009, 20:14
Цитата(CruorVult @  21.3.2009,  12:35 Найти цитируемый пост)
Немогу,т.к. создавал БД в phpmyadmin.

можно и скриптом посмотреть. какая разница где создано? http://forum.vingrad.ru/index.php?showtopic=251323&view=findpost&p=1812803

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)