PHP MySQL Order By with Where子句

PHP MySQL Order By with Where子句,php,mysql,Php,Mysql,我需要按ASC订单中的number字段下单,但它不起作用 $sThree = "SELECT `id`, `name`, `number`, `logo` FROM `itv` WHERE `id` = {$rTwoArray['service_id']} ORDER BY `number` ASC"; $qThree = mysql_query($sThree, $conn1); $rThree[] = mysql_fetch_assoc($qThree); 无法理解,请帮助我调试。使用M

我需要按ASC订单中的
number
字段下单,但它不起作用

$sThree = "SELECT `id`, `name`, `number`, `logo` FROM `itv` WHERE `id` = {$rTwoArray['service_id']} ORDER BY `number` ASC";
$qThree = mysql_query($sThree, $conn1);
$rThree[] = mysql_fetch_assoc($qThree);

无法理解,请帮助我调试。

使用MySQL
CAST(表达式作为类型)

试试这个MySQL查询

$sThree = "SELECT `id`, `name`, `number`, `logo` FROM `itv` 
WHERE `id` = {$rTwoArray['service_id']} order by CAST(number AS SIGNED) ASC";

由于查询处于循环中,我对最终数组进行了排序

    $sThree = "SELECT `id`, `name`, `number`, `logo` FROM `itv` WHERE `id` = {$rTwoArray['service_id']}";
    $qThree = mysql_query($sThree, $conn1);
    $rThree[] = mysql_fetch_assoc($qThree);

usort($rThree, function ($item1, $item2) {
    return $item1['number'] >= $item2['number'];
});
debug($rThree);

上面显示的查询不同,结果图像也不同。您使用了
其中id={something}
它应该在结果中给出所有相同的
id
。请附上正确的结果

您在这里获得的查询结果可能来自另一个查询,这就是您无法获得有序结果的原因


每当代码行为异常时,首先查看代码是否在循环中工作,或者什么,并且从不假设。

mysql中
number
字段的数据类型是什么?@Viral
number
字段是int(11)您是否尝试手动运行查询?您正在检查查询中的id=some\u值。因此,您发布的数组应该具有相同的id。但它具有不同的id。我认为您通过php循环创建了一个数组,其中包含select查询。上面显示的查询不同,结果图像也不同。您使用了
其中id={something}
它应该在结果中给出所有相同的
id
。请附上正确的结果。
    $sThree = "SELECT `id`, `name`, `number`, `logo` FROM `itv` WHERE `id` = {$rTwoArray['service_id']}";
    $qThree = mysql_query($sThree, $conn1);
    $rThree[] = mysql_fetch_assoc($qThree);

usort($rThree, function ($item1, $item2) {
    return $item1['number'] >= $item2['number'];
});
debug($rThree);