我编写了以下代码,以显示html表中的wordpress数据库表中的数据:
global $wpdb;
$table_name = $wpdb->prefix . 'mytable';
$stats = $wpdb->get_results("SELECT * FROM $table_name ORDER BY cast(alexacr as UNSIGNED) ASC");
$itemnum = $wpdb->get_var("SELECT COUNT(id) FROM $table_name");
echo '<span style="font-family: sans-serif;position:relative;float: left;font-size: 18px;"><em>'.$itemnum.' Sites</em></span>';
echo '<table>';
echo '<thead>';
echo '<th>Nome & Link</th><th>Alexa CR</th>';
echo '</thead>';
echo '<tbody>';
foreach ($stats as $stat){
echo'<tr>';
echo '<td><a title="'.str_replace('_','',$stat->name).'" href="'.$stat->url.'" target="_blank">'.str_replace('_','',$stat->name).'</a></td><td>'.$stat->alexacr.'</td>';
echo'</tr>';
}
echo '</tbody>';
echo '</table>';
alexacr列设置为varchar。
alexacr列的结果如下所示:
N/A
1
2
3
4
我怎样才能仅对数字进行排序?
1
2
3
4
N/A
谢谢。
最佳答案
尝试
SELECT
*
FROM
Table1
Order By
CASE WHEN alexacr like 'N/A' then 1 else 0 end ASC,
LPAD(alexacr, 20, '0') ASC
http://sqlfiddle.com/#!2/210007/1上的演示
有关LPAD的更多详细信息,请参见http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lpad
关于php - 首先在mysql中对varchar整数进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20527600/