Using count(*) vs num_rows

后端 未结 5 2547
灰色年华
灰色年华 2021-02-20 10:20

To get number of rows in result set there are two ways:

  1. Is to use query to get count

    $query=\"Select count(*) as count from some_table where type=

5条回答
  •  忘掉有多难
    2021-02-20 11:18

    There are a few differences between the two:

    1. num_rows is the number of result rows (records) received.
    2. count(*) is the number of records in the database matching the query.

    The database may be configured to limit the number of returned results (MySQL allows this for instance), in which case the two may differ in value if the limit is lower than the number of matching records. Note that limits may be configured by the DBA, so it may not be obvious from the SQL query code itself what limits apply.

    Using num_rows to count records implies "transmitting" each record, so if you only want a total number (which would be a single record/row) you are far better off getting the count instead.

    Additionally count can be used in more complex query scenario's to do things like sub-totals, which is not easily done with num_rows.

提交回复
热议问题