【发布时间】:2016-12-27 02:13:45
【问题描述】:
我有一个这样的表(我删除了所有不相关的字段):
CREATE TABLE `products` (
`id` bigint(20) NOT NULL,
`keywords` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `KEYWORDS_FTIDX` (`keywords`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
还有两行:
- id:131072,关键字:product1
- id:131073,关键字:product2
如果我运行查询SELECT * FROM products WHERE MATCH(keywords) AGAINST('product1' IN BOOLEAN MODE),它将按预期返回第一行。
但是如果我在查询SELECT * FROM products WHERE MATCH(keywords) AGAINST('product1' IN BOOLEAN MODE) LIMIT 10 中添加限制,那么我什么也得不到。
我尝试为 LIMIT SELECT * FROM products WHERE MATCH(keywords) AGAINST('product1' IN BOOLEAN MODE) LIMIT 100 使用更大的数字,它再次起作用。
谁能告诉我如何解决这个问题?
【问题讨论】:
-
个人拥有所有添加的选项,您应该将其发布到数据库管理员社区。也就是说,如果您了解添加到 T-SQL 语句中的所有这些额外内容。如果你不干脆就回一些。
-
我只是在 docker 容器中运行 mysql,所有默认配置用于开发目的。所以我认为这与选项无关。不过感谢您的建议,我会尝试数据库管理员社区,看看是否有更好的解决方案。
标签: mysql