(Оказывается, это зависит от MySQL)
Самое короткое, что я могу придумать в SQL, это:
SELECT * FROM table
WHERE column LIKE '%chair%'
ORDER BY IF(column LIKE 'chair%', 0, 1), column;
IF дает строки, которые начинаются с 'chair', равны 0, а строки, которые не имеют 1. Порядок сортировки в SQL сортирует строки в соответствии с первым указанным «столбцом», а затем в этом порядке отсортируем по второму и т. д.
Чтобы уточнить, как это будет выглядеть для ORDER BY:
ChairBlack = 0, 'ChairBlack'
BlackChair = 1, 'BlackChair'
Hello Chair = 1, 'Hello Chair'
Chair = 0, 'Chair'
Как сделать так, чтобы это было так:
Chair = 0, 'Chair'
ChairBlack = 0, 'ChairBlack'
BlackChair = 1, 'BlackChair'
Hello Chair = 1, 'Hello Chair'