0

我有以下 mysql 表:

表名:items

item_no qty
1l1000bk 1
1l1020be 2
1l900bk 12
1l820be 19

创建一个form提交到包含以下 PHP 代码的其他页面后:

$from = $_POST['from'];
$to = $_POST['to'];

$length = max(strlen($from), strlen($to)); 

$query6 = "SELECT * FROM items WHERE SUBSTRING(item_no, 1, ".$length.")   BETWEEN '".$from."' AND '".$to."' ORDER BY item_no Desc";

$result6 = mysql_query($query6);
if(!$result6){
    mysqli_error();
    exit();
}



if(mysql_num_rows($result6)>0){
$num6 = mysql_num_rows($result6);

for($i=0;$i<$num6;$i++){    

$row6 = mysql_fetch_assoc($result6);
echo $row6['item_no']."</br>";
}
}

根据 select 语句,输出完全错误..我需要将搜索到的 item_no 输出为降序!.. 这里显示的内容:

1l900bk
1l820be
1l1020be
1l1000bk

为什么 1l1000 小于 1l900 ?似乎它只比较第三个字符?..如何确保它比较完整的字符串?

请帮忙 !

4

2 回答 2

0

这是因为它被排序为字符串,而不是整数。如果你想排序,你应该让舒尔所有​​的数字都一样:所以如果你有 1000 和 900,使用 0900。那么它就可以排序了。

于 2013-06-24T11:32:22.930 回答
0
         SELECT column_name(s)
         FROM table_name
         WHERE column_name BETWEEN value1 AND value2;
于 2013-06-24T11:11:39.950 回答