我有一个表格,简化,照片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
只是不起作用
我该怎么办?
答案 0 :(得分:0)
谢谢大家的帮助 我从昨天起就试图解决这个问题,但我发现问题后我发现了错误:D
我正在使用某种latin
排序规则并将其更改为utf8_bin
,现在效果非常好!