Упорядочение sql-запроса по первой букве

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

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

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

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

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

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

это только возвращение

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

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

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

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

1 ответов


используйте предложение 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;