mysql任意の値を一番上、または一番下にしてソートする
$sql = "SELECT * FROM table_name order by case colum1 when '-' then 2 else 1 end, colum1,data1 asc;";
解説
order by
//もしcolum1が'-'ならば優先順位2番目にソートして
case colum1 when '-' then 2
//それ以外は優先順位1でソートする
else 1 end,
//この条件でcolum1をソート
colum1
//次にdata1でソートする
,data1 asc
逆パターン
order by
//もしcountry_nameが'Japan'ならば優先順位1番目でソートして
case country_name when 'Japan' then 1
//それ以外は優先順位2番目にソートする
else 1 end,
//この条件でcountry_nameをソート
country_name
//次にdata1でソートする
,data1 asc
その他複数できそう
order by
//もしcountry_nameが'Japan'ならば優先順位1番目でソートして
case country_name
when 'Japan' then 1
when 'USA' then 2
//それ以外は優先順位2番目にソートする
else 3 end,
//この条件でcountry_nameをソート
country_name