我有以下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>";
}
}
根据选择的统计,输出完全错误。。我需要将搜索到的item_no输出为降序!。。显示如下:
1l900bk
1l820be
1l1020be
1l1000bk
为什么1l1000比1l900小?它似乎只比较第三个字符?。。如何确保它比较完整的字符串?
请帮忙!
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
这是因为它被排序为字符串,而不是整数。如果你想对is进行排序,你应该让shure所有的数字都一样:所以如果你有1000和900,就用0900。则它将正常排序。