我有一张这样的桌子

+----+--------+--------+
| id | ref_id | status |
+----+--------+--------+
|  1 |      3 |      1 |
|  2 |      4 |      0 |
|  4 |      6 |      0 |
|  6 |      8 |      1 |
|  8 |     10 |      0 |
| 10 |     12 |      1 |
| 12 |     14 |      1 |
| 14 |     16 |      0 |
| 16 |     18 |      0 |
| 18 |     20 |      0 |
+----+--------+--------+

我想查找状态为0的行数,并按连续降序排列。在这种情况下,数字是3
    +----+--------+--------+
    | id | ref_id | status |
    +----+--------+--------+
    |  1 |      3 |      1 |
    |  2 |      4 |      0 |
    |  4 |      6 |      0 |
    |  6 |      8 |      1 |
    |  8 |     10 |      1 |
    | 10 |     12 |      1 |
    | 12 |     14 |      0 |
    | 14 |     16 |      0 |
    | 16 |     18 |      0 |
    | 18 |     20 |      0 |
    +----+--------+--------+

在这种情况下是4
 +----+--------+--------+
    | id | ref_id | status |
    +----+--------+--------+
    |  1 |      3 |      1 |
    |  2 |      4 |      0 |
    |  4 |      6 |      0 |
    |  6 |      8 |      1 |
    |  8 |     10 |      1 |
    | 10 |     12 |      1 |
    | 12 |     14 |      0 |
    | 14 |     16 |      0 |
    | 16 |     18 |      0 |
    | 18 |     20 |      1 |
    +----+--------+--------+

在这种情况下是0
到目前为止,我试着通过php条件处理下行的行并找到它。有更好的办法吗?

最佳答案

我在codeigniter中使用了这个代码并得到了结果

$this->db->select('count(id) as number');
$this->db->from('tablename');
$this->db->where('id > (select max(id) FROM tablename where status = 1)',
NULL, FALSE);

在mysql中
SELECT count(id) as number FROM tablename
WHERE id > (select max(id) FROM tablename where status = 1)

关于php - mysql按降序查找状态不同的条目数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42663375/

10-13 01:24