ORDER BY Пункт Breaks, ГДЕ СООТВЕТСТВУЕТ ПРОТИВ - PullRequest
0 голосов
/ 16 мая 2019

При использовании предложения WHERE с двумя условиями MATCH AGAINST и ORDER BY с двумя столбцами условия MATCH AGAINST игнорируются.

Я использую InnoDB.

Мой оригинальный запрос намного сложнее.Я могу заставить запрос работать правильно, удалив пункты MATCH AGAINST или ORDER BY.Тем не менее, я нуждаюсь в них всех.

Я свел это к самому маленькому проблемному запросу.Если я удаляю один из столбцов ORDER BY, предложения MATCH AGAINST не игнорируются.

Я не могу найти причину этого, поэтому большинство вещей, которые я пробовал, просто предполагают.

SELECT
  service_requests.title,
  locations.company
FROM service_requests
LEFT JOIN machines `machines` ON (service_requests.machineId = machines.id)
LEFT JOIN locations `locations` ON (machines.locationId = locations.id)
WHERE (
  MATCH(service_requests.title) AGAINST('+dropper*' IN BOOLEAN MODE)
  OR MATCH(locations.company) AGAINST('+dropper*' IN BOOLEAN MODE)
)
ORDER BY service_requests.createdAt, service_requests.machineId;

Из этого запроса я ожидаю получить записи, у которых в столбцах title или company есть «пипетка».И я получаю это, если я удаляю один из столбцов ORDER BY.Однако в обоих столбцах я получаю много записей без «дроппера» (или чего-либо подобного) в столбцах title или company.

Есть идеи, где я могу начать выяснять, что здесь происходит?

Мне кажется, что я не понимаю, как выполняются предложения ORDER BY относительно предложений MATCH AGAINST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...