【发布时间】:2011-04-26 14:38:57
【问题描述】:
我把标签存储在255 varchar区,像这种类型;
",keyword1,keyword2,keyword3,keyword 324,",keyword1234,
(关键字必须以逗号开头和结尾(commakeyword123comma))
-
我可以找到类似这个sql查询的关键字3;
select * from table where keyword like = '%,keyword3,%'
CREATE TABLE IF NOT EXISTS `table1` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`tags` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `tags` (`tags`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2242 ;
INSERT INTO `table1` (`id`, `tags`) VALUES
(2222, ',keyword,'),
(2223, ',word is not big,'),
(2224, ',keyword3,'),
(2225, ',my keys,'),
(2226, ',hello,keyword3,thanks,'),
(2227, ',hello,thanks,keyword3,'),
(2228, ',keyword3,hello,thanks,'),
(2239, ',keyword3 but dont find,'),
(2240, ',dont find keyword3,'),
(2241, ',dont keyword3 find,');
(返回 2224,2226,2227,2228)
-
我必须将这个类似命令更改为全文搜索。
select * from table1 where match (tags) against (",keyword3," in boolean mode)
sql 命令找到 2239,2240,2241 但我不想找到 %keyword3% 或 keyword3
只查找 ,keyword3, ?
,关键字3,
谢谢
【问题讨论】:
-
你试过从表中选择 X WHERE
wordIN tags 吗?
标签: php mysql full-text-search