Помогите с SQL запросом. Нужно правильно отсортировать

Не знаю как правильно сделать запрос SQL. Помогите пожалуйста. Есть запрос такого вида:

"SELECT * FROM `user` WHERE `nick` LIKE ?"

при таком запросе выводит все совпадения. Как можно отсортировать правильно и выдать в ответе

  1. Выводить с наименьшего к большему по длине строки

  2. Вывод начинается с тех букв которые ввели в поиск


Ответы (2 шт):

Автор решения: Alex R.

Если я правильно понял задачу, то так

SELECT 
  * 
FROM `user` 
WHERE `nick` LIKE '%$search%'
ORDER BY length(`nick`), instr(`nick`,  '$search')
→ Ссылка
Автор решения: Apelsin2020

Ответ, который уже был написан ранее должен работать, но как по мне, лучше использовать не length, а CHAR_LENGTH.

Так мы отсортировали данные по количеству символов, что бы вывод начинался с тех букв, которые ввёл пользователь - просто будем делать поиск именно с тех букв, которые он ввёл:

SELECT *
FROM `user`
WHERE `nick` LIKE '$search%'
ORDER BY CHAR_LENGTH(`nick`)
→ Ссылка