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


Я пытаюсь упорядочить свои запросы 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
  • динамические компьютерные службы

Я новичок в полнотекстовом поиске mysql.

Author: RichardTheKiwi, 2011-02-08

1 answers

Сначала используйте предложение 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;
 2
Author: a'r, 2011-02-08 16:39:12