我有一张简化照片 ID和标签 ID的表格。而且我最近注意到,当我使用 MATCH AGAINST 命令时,它不会返回所有合适的匹配项。即使有时两行包含经过测试的完全相同的文本,但仍然有一个被选中,而另一个没有。
这是一张名为照片的表格
id | type | size | tag |
+----------------+------+---------+----------------------------------------------------------------------+
| IMG_1485197299 | jpg | 1400000 | ImgTg_0000000000 |
| IMG_1485429476 | jpg | 0 | ImgTg_1485195510 ImgTg_1485195592 ImgTg_1485195621 ImgTg_1486234725 |
| IMG_1485429627 | jpg | 0 | ImgTg_1485195510 ImgTg_1485195621 ImgTg_1485195592 |
| IMG_1485429660 | jpg | 0 | ImgTg_1485195510 ImgTg_1485195621 ImgTg_1485195592 |
| IMG_1485429669 | jpg | 0 | ImgTg_1485195510 ImgTg_1485195621 ImgTg_1485195592 |
| IMG_1485429681 | jpg | 0 | ImgTg_1485195592 |
| IMG_1485429687 | jpg | 0 | ImgTg_1486234725 |
| IMG_1485429695 | jpg | 0 | ImgTg_1485195621 ImgTg_1485195510 |
| IMG_1485429704 | jpg | 0 | ImgTg_0000000000 ImgTg_1486234725 |
| IMG_1485429710 | jpg | 0 | ImgTg_1485195510 |
| IMG_1485429718 | jpg | 0 | ImgTg_1485195510 |
| IMG_1485433986 | jpg | 0 | ImgTg_1485195510 ImgTg_1485195592 |
| IMG_1485433993 | jpg | 0 | ImgTg_1485195510 ImgTg_1485195592 |
| IMG_1486234762 | png | 143306 | ImgTg_1486234725 |
这是我正在使用的命令:
SELECT * FROM photos WHERE MATCH(tag) AGAINST('+ImgTg_1486234725 ' IN BOOLEAN MODE);
并且它在大多数表格中都可以正常工作,但由于某种原因,它无法正常工作,尤其是在最后一行。返回:
+----------------+------+------+-------------------+
| id | type | size | tag |
+----------------+------+------+-------------------+
| IMG_1485429687 | jpg | 0 | ImgTg_1486234725 |
+----------------+------+------+-------------------+
注意:如果我尝试将其更改tag
为不同的id
,它会起作用!但有些ids
根本行不通
我应该怎么办?