Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
webbaster
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 11
1

Как скорректировать запрос к БД для получения нужного результата

29.11.2018, 14:43. Просмотров 410. Ответов 5
Метки нет (Все метки)

Друзья, подскажите, каким образом нужно скорректировать запрос, что бы получить выделенную красным строку на первом месте?
MySQL
1
2
3
4
SELECT * FROM `sf_tools_kladr_places`
WHERE `searchString` LIKE '%Самара%' 
ORDER BY `name` LIKE '%Самара%' ASC, 
CHAR_LENGTH (`searchString`) ASC
Скриншот с моим запросом и нужной строкой прилагаю

Заранее благодарен за ответы.
0
Изображения
Тип файла: png 2018-11-29_14-36-16.png (48.2 Кб, 17 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2018, 14:43
Ответы с готовыми решениями:

Как выполнить запрос на получения url для загрузки картинки
как выполнить запрос на получения url для загрузки картинки в одноклассниках?? можете привести...

Как создать SQL запрос к базе, для получения отчета из нескольких таблиц
Есть база в которой есть таблица продаж и таблица состав. Надо получить отчет за период от Data1...

Как сформулировать запрос из командной строки для получения полной информации об истории работы с файлом
Как сформулировать запрос из командной строки для получения полной информации об истории работы с...

Для получения результата составить функцию, исходными данными которой являются два массива
Для получения результата составить функцию, исходными данными которой являются два массива...

Запрос для получения среднего балла для каждого курса по каждому предмету
Здравствуйте. Есть готовая база данных из нескольких таблиц, нужно написать запрос в IBexpert из...

5
Grossmeister
Модератор
3658 / 2659 / 484
Регистрация: 21.01.2011
Сообщений: 11,522
29.11.2018, 15:10 2
Цитата Сообщение от webbaster Посмотреть сообщение
что бы получить выделенную красным строку на первом месте
Если строка "не поддается" стандартной сортировке, то можно использовать CASE в секции ORDER BY
1
DimaxDe
69 / 52 / 19
Регистрация: 07.11.2018
Сообщений: 413
29.11.2018, 15:49 3
стёр

Добавлено через 17 минут
помоему ,если он отсортировал
Код
WHERE `searchString` LIKE '%Самара%'
то
Код
ORDER BY `name` LIKE '%Самара%'
просто не имеет смысла

ю

Добавлено через 9 минут
единственное как получить эту строчку на первое место это сортировать по типу населённого места ,столбец name несоответствует форме 3 ,в нем содержится несколько информаций,наверно придется вводить столбец name_typ и разбивать name
1
webbaster
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 11
29.11.2018, 15:57  [ТС] 4
Цитата Сообщение от Grossmeister Посмотреть сообщение
Если строка "не поддается" стандартной сортировке, то можно использовать CASE в секции ORDER BY
Здесь затруднительно будет описывать каждый случай, т.к. слишком большая база (220509 строк), а проблемные выдачи встречаются в 10% случаев.
Вообще это база городов Деловых линий и у них на сайте сделано именно так, что нужный город выводит на первом месте. Т.е. как-то можно сделать, но вот как...

Добавлено через 3 минуты
Нашел закономерность. Поле code в нужных полях имеет максимальное количество нулей с правой стороны.
Можно ли как-то сделать их подсчет? Именно средствами mysql ?
0
DimaxDe
69 / 52 / 19
Регистрация: 07.11.2018
Сообщений: 413
29.11.2018, 16:14 5
значит надо как мастер сказал кейс вводить и искать после пробела букву г.либо у них есть ещё чтото в базе для таких поисков

Добавлено через 4 минуты
а вообще какой алгоритм сортировки,вы же откудато знали что эта строчка должна быть первой

Добавлено через 9 минут
Цитата Сообщение от webbaster Посмотреть сообщение
что нужный город
почему он нужный? ведь явно не из-за нулей в коде
0
webbaster
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 11
29.11.2018, 17:36  [ТС] 6
Если взять калькулятор доставки Деловых Линий, то там первым выскакивает г.Самара. Он приоритетный, т.к. является именно городом.
Город Самара более приоритетен для службы доставки, чем село Самара в Иркутской области.
Код города, я полагаю, строится иерархически исходя из той самой важности и нужности.
Так получается если посчитать нули справа, то можно установить иерархическую важность города.
0
29.11.2018, 17:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2018, 17:36

Запрос для получения временной таблицы
При построении запроса столкнулся с проблемой, выполняется только первый запрос из строки,...

Запрос для получения свободных пользователей
Есть две таблицы: 1) Пользователи; 2) Ученики; В каждой таблице есть user_id. Например, в...

Полином Ньютона не выдаёт нужного результата
Ребят, программа работает, но не выдаёт нужного результата. Кто знает в чём проблема? Нужна помощь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.