我有以下mysql表:
表名:items
item_no qty
1l1000bk 1
1l1020be 2
1l900bk 12
1l820be 19
创建提交到包含以下PHP代码的其他页面的form
后:
$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 statment ..我需要输出搜索的item_no作为降序! 这里显示的是:
1l900bk
1l820be
1l1020be
1l1000bk
1l1000如何小于1l900?它似乎只比较第三个字符?..如何确保它比较完整的字符串?
请帮助!
答案 0 :(得分:0)
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
答案 1 :(得分:0)
这是因为它被排序为字符串,而不是整数。 如果你想排序是,你应该使shure所有数字是相似的:所以如果你有1000和900,使用0900.那么它将排序好。