gpt4 book ai didi

php - 在mysql中首先对varchar整数进行排序

转载 作者:行者123 更新时间:2023-11-29 08:16:22 24 4
gpt4 key购买 nike

我编写此代码是为了在 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 &amp; 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com