我很难解决这个难题。我有一个网站,显示一些产品。我试图通过ASC订单显示产品,但它无法正常工作。
这是我当前的查询和输出:
$sql=executeQuery("select * from ".PREFIX."prod_info where prodId='".$pId."' order by ProductName+0) ASC");
AM 65
AM 67
AM 69
AM 104 (Chuck)
AM 105 (Sin)
AM 73
AM 76
AC 20
任何帮助将不胜感激
答案 0 :(得分:0)
你应该:
order by ProductName
而不是:
order by ProductName+0
后者将ProductName
转换为整数。如果以字母开头,则将其视为0
。可能发生的是所有都是以字母开头,所有都按值0
排序 - 并且没有任何有趣的事情发生。
编辑:
您似乎希望按前两位数按字母顺序排序ProductName
,然后按其他数字顺序排序。你可以这样做:
order by left(ProductName, 2),
char_length(ProductName),
ProductName
如果你在结尾处真的有无关的话,那就更难了。以下可能会更好:
order by left(ProductName, 2),
substr(ProductName, 3) + 0,
ProductName