【问题标题】:about mysql and php [closed]关于 mysql 和 php [关闭]
【发布时间】:2013-02-13 12:03:52
【问题描述】:

我想从我的表中获取 X == 7 的行数

+----+----------+-------+---+   
| id | username | email | X |
+----+----------+-------+---+
|  1 |          |       | 7 |
|  2 |          |       | 7 |
|  3 |          |       | 7 |
|  4 |          |       |   |
|  5 |          |       |   |
+----+----------+-------+---+

有 3 行 X == 7

如何获取这些行数?

【问题讨论】:

  • select count(*) as total from table where x=7 some like this!

标签: php mysql sql count


【解决方案1】:
SELECT COUNT(id) FROM yourtable where x = 7;

SQL Fiddle Demo

这会给你一个值:

| COUNT(ID) |
-------------
|         3 |

如果您想对 x 的所有值执行此操作,请添加 GROUP BY

SELECT x, COUNT(id) TheCount
FROM yourtable
GROUP BY x;

Updated SQL Fiddle Demo

【讨论】:

  • count(*) 和 count(id) 有什么区别?
  • @Akam : count(*) 也计数为 NULL。检查this
  • @Akam - 对于这个查询,没有,它们是相同的,但如果有来自 id 的可为空值,它可能会有所不同。有关详细信息,请参阅this post
  • 这就是为什么我更喜欢使用COUNT(1)
  • 我不需要 id 我需要多少行具有相同的 X 。以及如何在我的表格中显示数字。对不起
【解决方案2】:
$sql = "SELECT count(*) FROM `table` WHERE X = 7"; 
$result = $con->prepare($sql); 
$result->execute(); 
$number_of_rows = $result->fetchColumn();

来自Count with PDO

作为说明:

Please, don't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDOMySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial

【讨论】:

  • 随意使用没有属性的评论,它由 php 聊天室创建,而不是我一个人
  • 好的,谢谢@NullPointer。
【解决方案3】:

只需在 SQl 查询中使用常规 count

SELECT COUNT(*) FROM `yourTable` WHERE `X`=7;

【讨论】:

    【解决方案4】:

    如果 x 列的类型为 INT,则使用

    SELECT COUNT(1) FROM tableName WHERE X=7
    

    如果 x 列的类型为 varchar,则使用

    SELECT COUNT(1) FROM tableName WHERE X='7'
    

    我相信你有 x 列作为整数...

    【讨论】:

      【解决方案5】:
      SELECT count(id) FROM table_name WHERE x='7'
      

      不过说真的,下次去谷歌搜索一下^^

      【讨论】:

        猜你喜欢
        • 2011-10-04
        • 2015-09-02
        • 1970-01-01
        • 2010-11-18
        • 2010-11-12
        • 2013-03-08
        • 1970-01-01
        • 2012-11-03
        • 1970-01-01
        相关资源
        最近更新 更多