程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> sphinxql若何獲得成果數及show meta的具體解釋

sphinxql若何獲得成果數及show meta的具體解釋

編輯:MySQL綜合教程

sphinxql若何獲得成果數及show meta的具體解釋。本站提示廣大學習愛好者:(sphinxql若何獲得成果數及show meta的具體解釋)文章只能為提供參考,不一定能成為您想要的結果。以下是sphinxql若何獲得成果數及show meta的具體解釋正文


mysql:
select count(*) from main_index;

然則這個在這裡卻報語法毛病。

第一種辦法:
查文檔得:
Aggregate functions (AVG(), MIN(), MAX(), SUM()) in column list clause are supported. Arguments to aggregate functions can be either plain attributes or arbitrary expressions. COUNT(*) is implicitly supported as using GROUP BY will add @count column to result set. Explicit support might be added in the future. COUNT(DISTINCT attr) is supported. Currently there can be at most one COUNT(DISTINCT) per query and an argument needs to be an attribute. Both current restrictions on COUNT(DISTINCT) might be lifted in the future.

也就是說只要在group by的時刻能力用count(*),如:


select 1 as dummy,count(*) c from main_index group by dummy;
+------+--------+-------+--------+
| id | weight | dummy | @count |
+------+--------+-------+--------+
| 1001 | 1      | 1 | 15659 |
+------+--------+-------+--------+

第二種辦法

select * from main_index limit 0;
show meta;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| total         |  67 |
| total_found   |  67 |
| time | 0.001  |
| keyword[0]     |  ha |
| docs[0] | 67  |
| hits[0] | 115 |
+---------------+-------+

也就是說用show meta來獲得這個total_found,這個就是總記載數。

上面我們來講一下show meta:
SHOW META shows additional meta-information about the latest query such as query time and keyword statistics:

也就是說它顯示的是比來一次查詢附加的一些信息,好比查詢時光、症結字統計、總記載等。

mysql> SELECT * FROM test1 WHERE MATCH('test|one|two');
+------+--------+----------+------------+
| id   | weight | group_id | date_added |
+------+--------+----------+------------+
|    1 |   3563 |      456 | 1231721236 |
|    2 |   2563 |      123 | 1231721236 |
|    4 |   1480 |        2 | 1231721236 |
+------+--------+----------+------------+
3 rows in set (0.01 sec)

mysql> SHOW META;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| total         | 3     |
| total_found   | 3     |
| time          | 0.005 |
| keyword[0]    | test  |
| docs[0]       | 3     |
| hits[0]       | 5     |
| keyword[1]    | one   |
| docs[1]       | 1     |
| hits[1]       | 2     |
| keyword[2]    | two   |
| docs[2]       | 1     |
| hits[2]       | 2     |
+---------------+-------+
12 rows in set (0.00 sec)

在PHP中若何挪用?

<?php
//獲得總記載個數
private function getTotalFound($conn) {
    $sql = "show meta";
    $total_result = @mysql_query ( $sql,$conn );
    $totals = array ();
    while ( ($row = mysql_fetch_assoc ( $total_result )) !== false ) {
        $totals [$row ['Variable_name']] = $row ['Value'];
    }
    return $totals;
}
?>

留意:假如代碼頂用了多個數據庫銜接的話,這個響應的conn必需傳出去,不然是取不到成果的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved