Помогите с SQL запросом. Нужно правильно отсортировать
Не знаю как правильно сделать запрос SQL. Помогите пожалуйста. Есть запрос такого вида:
"SELECT * FROM `user` WHERE `nick` LIKE ?"
при таком запросе выводит все совпадения. Как можно отсортировать правильно и выдать в ответе
Выводить с наименьшего к большему по длине строки
Вывод начинается с тех букв которые ввели в поиск
Ответы (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`)