MYSQL PHP order by 和 limit 1 返回 null
MYSQL PHP with order by and limit 1 returning null
我正在尝试 select 第一行,其中可以有任意数量的行,这些行具有对它们进行分组的公共唯一 ID(不一定在数据库中按顺序排列)。
我在主列上使用 ORDER BY,它是一个完全唯一的 ID,是一个 int(11) 并使用 LIMIT 1。
$orderins = $db->Execute("select *
from " . TABLE_ORDERS_STATUS_HISTORY . "
where orders_id = '.$zv_orders_id.' order by orders_status_history_id ASC LIMIT 1");
$orderins = $orderins->fields['comments']; // SEND VAR
orders_status_history_id 是主要(完全唯一的 ID),也是第一列,使用自动递增。
orders_id 是分组行将共享的共享 id。共享此id的行不一定是一个接一个。
我得到的结果是空的。
我删除 ORDER BY 的那一刻,它发送了一个结果。
让我也包括在内,当我删除 ORDER BY 时,到目前为止它只是 return 对第一行进行了多次测试。
返回数据库中存在的第一行 orders_id 实际上是期望的结果。所以也许我不需要 ORDER BY 来工作或在那里。我能否确定 LIMIT 1 将始终获得数据库中与 WHERE BY 匹配的第一行,或者它是否有可能 return 其他也共享 WHERE BY 过滤器的行之一。
PHP是一种很容易混淆的语言,两种不同的引号其实差别很大。你碰巧把它们搞混了,这是一个很容易犯的错误。要修复它,请尝试将查询更改为:
"SELECT * FROM " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '$zv_orders_id' order by orders_status_history_id ASC LIMIT 1"
现在应该可以了。
也看看catcon
的评论
我正在尝试 select 第一行,其中可以有任意数量的行,这些行具有对它们进行分组的公共唯一 ID(不一定在数据库中按顺序排列)。
我在主列上使用 ORDER BY,它是一个完全唯一的 ID,是一个 int(11) 并使用 LIMIT 1。
$orderins = $db->Execute("select *
from " . TABLE_ORDERS_STATUS_HISTORY . "
where orders_id = '.$zv_orders_id.' order by orders_status_history_id ASC LIMIT 1");
$orderins = $orderins->fields['comments']; // SEND VAR
orders_status_history_id 是主要(完全唯一的 ID),也是第一列,使用自动递增。
orders_id 是分组行将共享的共享 id。共享此id的行不一定是一个接一个。
我得到的结果是空的。
我删除 ORDER BY 的那一刻,它发送了一个结果。
让我也包括在内,当我删除 ORDER BY 时,到目前为止它只是 return 对第一行进行了多次测试。
返回数据库中存在的第一行 orders_id 实际上是期望的结果。所以也许我不需要 ORDER BY 来工作或在那里。我能否确定 LIMIT 1 将始终获得数据库中与 WHERE BY 匹配的第一行,或者它是否有可能 return 其他也共享 WHERE BY 过滤器的行之一。
PHP是一种很容易混淆的语言,两种不同的引号其实差别很大。你碰巧把它们搞混了,这是一个很容易犯的错误。要修复它,请尝试将查询更改为:
"SELECT * FROM " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '$zv_orders_id' order by orders_status_history_id ASC LIMIT 1"
现在应该可以了。
也看看catcon
的评论