PHP iconv ()
iconv("UTF-8", "ISO-8859-15", $input);
Попробуйте следующее:
SELECT * FROM stores ORDER BY country = "us" DESC, storeId
Чтобы сначала получить искомую страну, а оставшуюся часть в алфавитном порядке:
SELECT *
FROM stores
ORDER BY country = 'us' DESC, country ASC
Как насчет использования IF
для присвоения верхнего значения строкам США.
select if(country_cd='us,'aaaUS',country_cd) sort_country_cd, country_cd from stores Order by sort_country_cd
Это даст вам псевдостолбец с именем sort_country_cd
.
Здесь вы можете сопоставить «США» с «aaaUS».
JP
все еще можно сопоставить с JP
.
Таким образом, США находятся на вершине списка сортировки.
Создайте таблицу кодов стран и заказов, присоединитесь к ней в своем запросе, а затем упорядочите по порядку кода страны.
Таким образом, у вас будет таблица, которая выглядит как
CountryOrder
Code Ord
---- ---
us 1
jp 2
se 3
а затем код, который выглядит так:
SELECT s.*
FROM Stores s
INNER JOIN CountryOrder c
ON c.Code = s.Country
ORDER BY c.Ord;
Вы должны связать каждое значение страны с цифрой, с регистром:
select *
from stores
order by case when country = "us" then 1
else 0
end desc