mysql not exists无效_MySQL MATCH AGAINST无效

我实际上在一个网站上工作,有两个表,几乎相同,其中MATCH AGAINST在一个上工作但在另一个上不工作.要找出为什么我试图将其简化为一个简单的“让我们做一个简单的表格工作” – 但事实并非如此.

我正在使用phpMyAdmin进行测试,这是MySQL 5.1.41.

我构建的测试使用以下来定义表…

CREATE TABLE IF NOT EXISTS `test` (

`id` int(11) NOT NULL,

`title` text NOT NULL,

`body` text NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

ALTER TABLE `test` ADD FULLTEXT (`title`, `body`);

当我做一个SHOW INDEX FROM测试时,我看到有一个包含标题和正文的FULLTEXT键.

我插入几行

INSERT INTO `test` (`id`, `title`, `body`) VALUES

('1', 'Lorem Ipsum', 'Lorem ipsum dolor sit amet, consectetur ... lacus porta euismod.'),

('2', 'Lorem Ipsum (cont)', 'Nunc leo massa, vulputate ... euismod fringilla.');

(为简洁起见,删除了一些正文内容)

然后当我跑

SELECT * FROM `test` WHERE MATCH (`title`, `body`) AGAINST ('consectetur');

我得到一个空的结果集 – 没有找到行,但如果我运行

SELECT * FROM `test` WHERE `body` LIKE '%consectetur%';

然后找到一条记录.

虽然我对MySQL有很多经验,但这是我第一次使用MATCH,所以我做了些什么蠢事?为什么这不起作用?是否需要构建索引(我已在表上完成了REPAIR)或者它是否应该自动发生?

仅供参考,工作表定义为

CREATE TABLE IF NOT EXISTS `web_pages1` (

`id` int(11) NOT NULL,

`title` varchar(255) DEFAULT NULL,

`slug` varchar(255) DEFAULT NULL,

`meta_keywords` text,

`meta_description` text,

`snippet` text,

`body` mediumtext,

`created_by` int(11) DEFAULT NULL,

`date_created` datetime DEFAULT NULL,

`date_published` date DEFAULT NULL,

`author` varchar(255) DEFAULT NULL,

`edited_by` int(11) DEFAULT NULL,

`date_edited` datetime DEFAULT NULL,

`status` tinyint(4) NOT NULL DEFAULT '1',

`parent_id` tinyint(11) DEFAULT NULL,

`menu_id` int(11) DEFAULT NULL,

`short_name` varchar(255) DEFAULT NULL,

`sort_order` int(11) DEFAULT NULL,

PRIMARY KEY (`id`),

FULLTEXT KEY `search` (`title`,`slug`,`meta_keywords`,`meta_description`,`snippet`,`body`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

而导致我出现问题并将我送到这条路线的那个是

CREATE TABLE IF NOT EXISTS `web_news1` (

`id` int(11) NOT NULL,

`title` varchar(255) NOT NULL,

`slug` varchar(255) NOT NULL,

`meta_keywords` text,

`meta_description` text,

`snippet` text NOT NULL,

`body` text NOT NULL,

`created_by` int(11) NOT NULL,

`date_created` datetime NOT NULL,

`date_published` date DEFAULT NULL,

`author` varchar(255) DEFAULT NULL,

`edited_by` int(11) DEFAULT NULL,

`date_edited` datetime DEFAULT NULL,

`status` tinyint(4) DEFAULT '0',

PRIMARY KEY (`id`),

FULLTEXT KEY `search` (`title`,`slug`,`meta_keywords`,`meta_description`,`snippet`,`body`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

虽然我已经尝试将第二个定义为与第一个完全相同但仍无法正常工作.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值