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必须传进来,否则是取不到结果的。

(0)

相关推荐

  • Sphinx/MySQL 协议支持与SphinxQL应用实例

    Sphinx的searchd守护程序从版本0.9.9-rc2开始支持MySQL二进制网络协议,并且能够通过标准的MySQL API访问.例如,"mysql"命令行程序可以很好地工作. 以下是用MySQL客户端对Sphinx进行查询的例子: 复制代码 代码如下: $ mysql -P 9306Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 1Server versio

  • 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(*)

  • Java结构型设计模式之桥接模式详细讲解

    目录 桥接模式 概述 应用场景 优缺点 主要角色 桥接模式的基本使用 创建实现角色 创建具体实现角色 创建抽象角色 创建修正抽象角色 客户端调用 桥接模式实现消息发送 创建实现角色 创建具体实现角色 创建抽象角色 创建修正抽象角色 客户端调用 桥接模式 概述 桥接模式(Bridge Pattern)也称为桥梁模式.接口(Interfce)模式或柄体(Handle and Body)模式,属于结构型模式. 它是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化. 桥接模式主要目的是通过组合的

  • php 备份数据库代码(生成word,excel,json,xml,sql)

    单表备份代码: 复制代码 代码如下: <?php    class Db    {        var $conn; function Db($host="localhost",$user="root",$pass="root",$db="test")        {          if(!$this->conn=mysql_connect($host,$user,$pass))          die(

  • jQuery插件简单学习实例教程

    本文实例讲述了jQuery插件及其用法.分享给大家供大家参考,具体如下: (1)异步分页插件flexgrid 1)前台js <%@ page language="Java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&

  • MongoDB 游标详解及实例代码

     MongoDB 游标详解 MongoDB中的游标与关系型数据库中的游标在功能上大同小异.游标相当于C语言的指针,可以定位到某条记录,在MongoDB中,则是文档.因此在mongoDB中游标也有定义,声明, 打开,读取,关闭这么个过程.客户端通过游标,能够实现对最终结果进行有效的控制,诸如限制结果数量,跳过部分结果或根据任意键按任意顺序的组合对结果进行各种排序等.下文是针对MongoDB游标的具体介绍. 一.mongoDB游标介绍 db.collection.find()方法返回一个游标,对于文

  • 使用FlexiGrid实现Extjs表格效果方法分享

    近一段时间Extjs真的是风光无限好,只要是个做CRM/HRM之类的企业现在都在琢磨怎么在项目中用它,不过兄弟我可是不敢,原因很简单:太大/太笨/源码不好调试.但是对于Extjs漂亮的表格与功能的强大,实在是让我垂涎三尺,记得以前有个老外同志写过一个类似的Extjs的Jquery插件,所以就在Jquery的插件海洋中一顿海找,呵呵,还真让我找到了.看来还是我的Jquery好,小巧简单好像一部好的汽车引擎,我想要什么就可以自已DIY,真是方便.总体方案在网络传输上不超过80KB,速度比500KB大

  • JavaScript 自动完成脚本整理(33个)

    如果你也正准备在这方面提升自己网站的用户体验,下面为你准备了33个JavaScript自动完成脚本,当然还包括用Jquery实现的.1. Proto!TextboxList (演示地址)=700) window.open('/upload/20091020155954866.jpg');" src="http://files.jb51.net/upload/20091020155954866.jpg" onload="if(this.offsetWidth>'

  • php获取百度收录、百度热词及百度快照的方法

    本文实例讲述了php获取百度收录.百度热词及百度快照的方法.分享给大家供大家参考.具体如下: 获取百度收录: <?php /* 抓取百度收录代码 */ function baidu($s){ $baidu="http://www.baidu.com/s?wd=site%3A".$s; $site=file_get_contents($baidu); //$site=iconv("gb2312", "UTF-8", $site); ereg(

  • PHP 正则表达式常用函数

    1.preg_match() 函数原型:int preg_match (string $pattern, string $content [, array $matches]) preg_match ()函数在$content字符串中搜索与$pattern给出的正则表达式相匹配的内容.如果提供了$matches,则将匹配结果放入其 中.$matches[0]将包含与整个模式匹配的文本,$matches[1]将包含第一个捕获的与括号中的模式单元所匹配的内容,以此类推.该函数只 作一次匹配,最终返回

随机推荐