php - Mysql count(*) 让我失望

标签 php mysql

if(!$this->MakeProcedure("StupidProcedure", "OUT msg VARCHAR(25)" )){
            echo "could not create procedure";
  }

if(!$this->db->query("SET @msg = ''") || !$this->db->query("CALL StupidProcedure(@msg)")){
          echo "CALL to StupidProcedure  failed:";
}  else   {
    $res= $this->db->query("SELECT @msg as _p_out");
     $row = $res->fetch();
                echo $row['_p_out']." counted columns ";
}     ​

我在 mysql DB 中有表authors 和publishers。他们都有 ISBN 共有列。然后我(通过 php)向存储过程发出调用 其中包含以下代码:

BEGIN   
DECLARE count int;

                    SELECT count (*) FROM 
                                    (
                                       SELECT distinct
                                       table_name
                                       FROM information_schema.columns
                                       WHERE table_name IN ('authors', ‘publishers’)
                                       AND column_name = 'ISBN'
                                       and table_schema = 'myDB'
                                    )any_alias
                    INTO count;
                    SELECT count INTO msg;      /*just to debug counter*/
END

基本上,我希望上面的代码片段返回 2 作为表的计数 具有共同的 ISBN 列(以反射(reflect)在计数变量中)。很遗憾, 尽管有多个,但计数始终返回 0 - 检查 ISBN 列是否为 那里(使用 phpmyadmin)。为什么 count(*) 表现奇怪?或者在那里 我必须设置一个特殊的 .ini 配置?

这是我的测试驱动程序:

任何帮助将不胜感激。

最佳答案

哇哦!终于我明白了。下面是执行脏修复的 sql 代码片段:

BEGIN   
DECLARE count int; 
                    SELECT count(1)
                    FROM information_schema.columns
                    WHERE table_name IN ('authors', 'publishers')
                    AND column_name = 'ISBN'
                    AND table_schema = 'test'   
                    INTO count;
                    SELECT count INTO msg;      /*just to debug counter*/
END
//PRINT ‘Thank you guys !’
​

关于php - Mysql count(*) 让我失望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30810526/

相关文章:

php - 存储时间 - 使用 Time 或 Int 字段? (PHP 和 MySQL 数据库)

php - 先到先得 php

php - 无法使用 add_post_meta() 函数保存关联数组

mysql - SQL替换任意数字

php - 检测差错控制算子

php - 使用 Codeigniter 仅更新一条记录

php - Laravel Scout - 观察关系

mysql - 如何恢复 xampp 服务器数据库文件?

mysql - 基于 VMWare Openstack 的 Fedora Cloud Base - phpMyAdmin 错误 #2002

php - Laravel Eloquent ,当一行满足 2 个条件时,如何从查询中排除行?