0

私は食べ物やホテルのテーブルを持っています

CREATE TABLE `food_master` (
  `id` int(6) unsigned NOT NULL auto_increment,
  `caption` varchar(255) default NULL,
  `category` varchar(10) default NULL,
  `subcategory` varchar(10) default NULL,
  `hotel` varchar(10) default NULL,
  `description` text,
  `status` varchar(10) default NULL,
  `created_date` date default NULL,
  `modified_date` date default NULL,
  `chosen_mark` varchar(10) default 'no',
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `description` (`description`,`caption`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1

そして、私はそれにデータを持っています。この表では全文索引を使用しています。クエリを使用します

SELECT * FROM food_master am 
WHERE MATCH(description, caption) AGAINST ('Chicken')

このクエリは、フィールド「caption」に2つの「Chicken」がある場合に正常に機能します。しかし、3つ目を置くと、行が返されません。

4

1 に答える 1

1

IN BOOLEAN MODEとして試してみてください

MySQL は、IN BOOLEAN MODE 修飾子を使用してブール全文検索を実行できます。この修飾子を使用すると、特定の文字が検索文字列の単語の先頭または末尾に特別な意味を持ちます。

SELECT * FROM food_master 
WHERE MATCH(description, caption) AGAINST ('Chicken' IN BOOLEAN MODE)

Demo

于 2012-09-14T07:20:23.270 に答える