Заказ SQL-запроса по первой букве - PullRequest
7 голосов
/ 08 февраля 2011

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

Пример MySQL таблица Значение компьютерные услуги abc компьютерные услуги динамические компьютерные услуги

Если я ищу computer services, я хочу, чтобы результаты возвращались как:

**Name**
computer services
abc computer services
dynamic computer services

Я использую полный текст mysql, но если я использую name LIKE 'c%', я не получу два других результата, например

SELECT name FROM table WHERE match('name') against('computer services*' IN BOOLEAN MODE) AND name LIKE 'c%';

Это только вернет

  • компьютерные услуги

Но я хочу, чтобы он вернулся:

  • компьютерные услуги
  • abc computer services
  • динамические компьютерные услуги

Я новичок в MySQL полный текст поиска.

1 Ответ

2 голосов
/ 08 февраля 2011

Сначала используйте предложение order by, соответствующее первому регистру. Я использую not like здесь, потому что логическое значение возвращает 0 или 1, и мы хотим изменить это, чтобы сначала сопоставить старт с регистром.

SELECT name 
FROM table 
WHERE match('name') against('computer services*' IN BOOLEAN MODE)
ORDER BY name NOT LIKE 'computer services%', name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...