Php 使用WHERE的MySQL请求

Php 使用WHERE的MySQL请求,php,mysqli,Php,Mysqli,我的数据库如下: 我要创建的是一个HTML表,它只显示满足以下几点的数据: 选择第一个订单号状态为“1”或“2”的所有订单(订单号始终较高) 如果我使用我的数据库示例,我的表应该显示2行: ID 1和ID 2。我想用MySQL选择那些数据 我的代码: $query = 'SELECT * FROM scan_activities ORDER BY order_number DESC' 我不明白如何确保MySQL使用第一个可能的(最低的)订单号进行选择。同样重要的是,一个特定的订单号可

我的数据库如下:

我要创建的是一个HTML表,它只显示满足以下几点的数据:

  • 选择第一个订单号状态为“1”或“2”的所有订单(订单号始终较高)
如果我使用我的数据库示例,我的表应该显示2行:

  • ID 1和ID 2。我想用MySQL选择那些数据
我的代码:

$query = 'SELECT * FROM scan_activities ORDER BY order_number DESC'
我不明白如何确保MySQL使用第一个可能的(最低的)订单号进行选择。同样重要的是,一个特定的订单号可以有多行。所有这些行都应该在“当然”选项中。

您可以使用以下子句:

$query = 'SELECT * FROM scan_activities WHERE order_status = 1 OR order_status = 2 ORDER BY order_number'
希望它能对你有所帮助

 SELECT * FROM scan_activities WHERE order_status IN (1,2) 
 ORDER BY order_number

要避免子查询,它可能如下所示:

SELECT  scan_activities.*
FROM    scan_activities
INNER JOIN (
    SELECT  MIN(order_number) order_number
    FROM    scan_activities
) t2 ON t2.order_number = scan_activities.order_number
WHERE order_status IN (1,2);
或使用子查询:

SELECT * FROM scan_activities
WHERE order_number = ( SELECT MIN(order_number) FROM scan_activities WHERE order_status IN (1,2));

希望它有助于

删除
DESC
在queryHi Thomas的末尾,我只想显示ID 1和ID 2中的行。现在它显示了4行。我想自动选择状态为“1”或“2”的第一个可用订单号(最低订单号),并在查询中为我输出。在这个问题中,您指的是SQL查询,因此最好不要谈论您希望对查询结果做什么。i、 我不想在这个主题中使用PHP。谢谢,但我不想显示所有的订单。我只想显示状态为“1”或“2”的最低订单号中的行。@ThomasRollet谢谢,这是我的错。
和(1,2)
中的订单状态应该在子查询中,而不是外部选择中。然后这个答案应该是正确的。完全正确!谢谢@最后一个问题,您的解决方案非常有效。但现在我有了以下内容:数据库列ID是唯一的
AUTO\u INCREMENT
。现在我想选择MIN(id),但是如果我这样做,我只会得到一条记录。我想要的是,如果最小值(id)与相同的订单号匹配,则选择最小值。@nHimme Append
order BY id LIMIT 1