[英]Sort MySQL query result by a alphanumeric field
我正在使用php查詢數據庫中的表。 字段之一是稱為“ rank”的列,其數據如下:
none
1-bronze
2-silver
3-gold
...
10-ambassador
11-president
我希望能夠根據該“排名”列對結果進行排序。 字段為“ none”的任何結果都將被排除,因此不會考慮在內。您已經猜到了,現在結果又像這樣返回:
1-bronze
10-ambassador
11-president
2-silver
3-gold
當然,我希望對其進行排序,因此如下所示:
1-bronze
2-silver
3-gold
...
10-ambassador
11-president
現在,查詢將作為對象返回。 我已經嘗試過不同的排序選項,例如natsort,sort,array_multisort,但我無法確定它的工作方式。 如果可能,我希望將結果保留為對象形式。 我將數據傳遞給下一步。 不過,將對象傳遞到視圖然后在此處進行工作是完全可以接受的。 所以這畢竟不是問題。 :)
謝謝您的幫助。 我希望我有道理。
獲取數組中的值,然后使用natsort()在PHP中對其進行排序
如何使用此功能進行排序。 我假設如果要獲取對象,則應將對象轉換為數組,然后使用此對象
function arraySubSort($array, $subkey, $sort = 'asort')
{
foreach($array as $key => $value)
{
$temp[$key] = strtolower($value[$subkey]);
}
$sort($temp);
foreach($temp as $key => $value)
{
$result[] = $array[$key];
}
return $result;
}
$data = $your_array;
$field = 'ranks';
arraySubSort($data,$field);
它將使用您分配的字段對數組進行排序。 如果要獲取多個記錄,則最好使用它進行排序。
這將起作用-
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.