MySQL MATCH AGAINST не возвращает все подходящие результаты
У меня есть таблица, для упрощения, идентификаторы фотографий и тегов. И недавно я заметил, что когда я использую команду 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
просто не работает
Что я должен делать?
1 ответ
Спасибо всем за то, что пытаетесь помочь. Я пытался разгадать эту загадку со вчерашнего дня, но я только что нашел ошибку, которую сделал после того, как опубликовал вопрос:D
Я использовал какой-то latin
сопоставление и я изменил его utf8_bin
и теперь работает отлично!