В GridView вывожу данные из таблицы.
Есть поле Номер
- текстовый тип. Подскажите, пожалуйста, как сортировать это поле в БД MySql одновременно как число и строку.
К примеру:
1, 2, Поле, Номер, 10, 15
А получить после сортировки
1, 2, 10, 15, Номер, Поле
SELECT x FROM y ORDER BY CAST(z -1 AS UNSIGNED);
WHERE x - needed params, y - name of table z - sort column
Можно вот таким запросом
select
f1
from t1
order by
if(cast(f1 + 0 as char) = f1, 0, 1),
f1 + 0,
f1
Пример на sqlfiddle
Выражение f1 + 0
вернет значение f1
если значение представимо числом или 0
. Соответственно if(cast(f1 + 0 as char) = f1, 0, 1)
вернет 0
для числовых значений и 1
для нечисловых. Отсортировав по такому выражению мы получим первыми числовые выражения, а потом нечисловые
Затем отсортируем по выражению f1 + 0
. Это отсортирует группу числовых значений.
Ну и в конце сортируем оставшиеся строки по выражению f1
Виртуальный выделенный сервер (VDS) становится отличным выбором
Мой проект состоит в том чтобы указать на карте АЗС и цены на топливоПишу на laravel и google maps api3 и мне нужно узнать цены с других сайтов для этого...
Можно ли присвоить переменную и выполнить SELECT не разбивая запрос на подзапросы?
Как сделать чтобы по нажатии клавиш ctrl + u в пхп срабатывал код, который записывал вhtaccess айпи клиента, нажавшего эту кнопку?