PHP按问题排序


PHP Order By Issue

我很难解决这个难题。我有一个网站正在展示一些产品。我试图通过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 

如有任何帮助,将不胜感激

您应该有:

order by ProductName

代替:

order by ProductName+0

后者将CCD_ 1转换为整数。如果它以字母开头,那么它将被视为0。可能发生的情况是,所有的都以字母开头,都是按值0排序的——没有发生任何有趣的事情。

编辑:

您似乎想按字母顺序排列ProductName的前两位数字,然后按数字顺序排列其余数字

order by left(ProductName, 2),
         char_length(ProductName),
         ProductName

如果你在数字后面的末尾真的有多余的单词,那就更难了。以下可能更有效:

order by left(ProductName, 2),
         substr(ProductName, 3) + 0,
         ProductName