create table test_fts(
<code>id
int (11) NOT NULL AUTO_INCREMENT,
col1 varchar (250),
col2 text DEFAULT NULL,
col3 varchar (250),
FULLTEXT KEY keyword_full_text
(col1
, col2
, col3
),
ПЕРВИЧНЫЙ КЛЮЧ (id
)) engine = innodb CHARSET ПО УМОЛЧАНИЮ = utf8;
insert into test_fts(col1,col2,col3) values('hasan-new','test','hasan uçak');
insert into test_fts(col1,col2,col3) values('hasan-new','','hasan uçak');
insert into test_fts(col1,col2,col3) values('hasan-new11','test','hasan uçak');
я делаю полнотекстовый поиск
<code>
SELECT *
FROM test_fts WHERE
( MATCH (
col1 ,
col2 ,
col3 ) AGAINST ('+\"hasan uçak\"' IN BOOLEAN MODE) )
результат
1 хасан-новый тест хасан учак
2 хасан-новый хасан учак
3 тест hasan-new11 hasan uçak
без проблем.
я воссоздаю полнотекстовый индекс
alter table test_fts drop index keyword_full_text;
alter table test_fts add FULLTEXT INDEX keyword_full_text(<code>col1
, col2
, col3
);
1 хасан-новый тест хасан учак
3 тест hasan-new11 hasan uçak
один ряд был потерян
почему?
когда я использую нулевое значение вместо пустой строки, нет проблем
когда любое значение столбца является пустой строкой в полях индекса
Я мог бы получить этот ряд.
Mysql не может выдвинуть столбцы, которые после пустого строкового столбца, значение индекса данных это?