mysql - MariaDB:选择计数(*)结合 MATCH AGAINST 返回错误计数
问题描述
我有一个表帐户:
+---------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| fullname | varchar(255) | NO | UNI | NULL | |
| email | varchar(255) | NO | UNI | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+---------------+---------------------+------+-----+---------+----------------+
该表有 11 个条目,其中 4 个具有包含“Foo”的全名。
但是运行这个查询,结果是 11:
select count(*) as aggregate
from `accounts`
where MATCH (fullname) AGAINST ('+foo*' IN BOOLEAN MODE)
or `fullname` LIKE '%foo%';
运行时返回 4 行
select *
from `accounts`
where MATCH (fullname) AGAINST ('+foo*' IN BOOLEAN MODE)
or `fullname` LIKE '%foo%';
这种行为破坏了 Laravel 分页,因为分页器显示“显示 11 到 4 ”并呈现 2 个页面链接。
MariaDB 在 CentOS 8.3 上是 10.5.9
解决方案
推荐阅读
- java - 几个 asynctask 还是只有一个?
- android - 如何在 Firebase 身份验证中记录单个用户的许多数据?
- flutter - 在函数 Flutter 中定义时不显示 LinearPercentIndicator
- python - 为什么YOLOv3计算调整anchor box的offset值,而不是直接输出bounding box的维度?
- python - Anaconda 4.7.12 激活环境不起作用
- mysql - 合并连续相同的行
- spring - Spring Integration - 使用 Java 配置转换服务激活器
- excel - 引用工作簿和 For 循环的问题
- c++ - 为什么我的代码没有打印最大的数字?
- sharepoint - 谷歌 Colab - Sharepoint