Chinaunix首页 | 论坛 | 博客
  • 博客访问: 414558
  • 博文数量: 137
  • 博客积分: 5190
  • 博客等级: 大校
  • 技术积分: 997
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 16:19
文章存档

2011年(17)

2010年(120)

我的朋友

分类: Mysql/postgreSQL

2011-01-10 10:18:50

在使用过程中出现了一个奇怪的现象
mysql> explain SELECT
    ->   COUNT(DISTINCT acc_name)
    -> FROM
    ->   login_2011_01
    -> WHERE crdate >= 1293811200
    ->   AND acc_name NOT IN
    ->   (SELECT 
    ->     acc_name
    ->   FROM
    ->     login_2010_12
    ->   WHERE crdate >= 1292428800
    ->     AND crdate < 1293724800
    ->     AND acc_name NOT IN
    ->     (SELECT
    ->       acc_name
    ->     FROM
    ->       logout_2010_12
    ->     WHERE crdate >= 1292428800
    ->       AND crdate < 1293724800
    ->       AND zone_code IN (21, 22))
    ->     AND zone_code IN (21, 22)) ;
+----+--------------------+----------------+------+---------------+------+---------+------+------+-----------------------------------+
| id | select_type        | table          | type | possible_keys | key  | key_len | ref  | rows | Extra                             |
+----+--------------------+----------------+------+---------------+------+---------+------+------+-----------------------------------+
|  1 | PRIMARY            | login_2011_01  | ALL  | NULL          | NULL | NULL    | NULL | 2000 | Using where with pushed condition |
|  2 | DEPENDENT SUBQUERY | login_2010_12  | ALL  | NULL          | NULL | NULL    | NULL | 2000 | Using where with pushed condition |
|  3 | DEPENDENT SUBQUERY | logout_2010_12 | ALL  | NULL          | NULL | NULL    | NULL | 2000 | Using where with pushed condition |
+----+--------------------+----------------+------+---------------+------+---------+------+------+-----------------------------------+
3 rows in set (0.87 sec)
mysql> SELECT                                                                                                                                                                                            
    ->   COUNT(DISTINCT acc_name)
    -> FROM
    ->   login_2011_01
    -> WHERE crdate >= 1293811200
    ->   AND acc_name NOT IN
    ->   (SELECT 
    ->     acc_name
    ->   FROM
    ->     login_2010_12
    ->   WHERE crdate >= 1292428800
    ->     AND crdate < 1293724800
    ->     AND acc_name NOT IN
    ->     (SELECT
    ->       acc_name
    ->     FROM
    ->       logout_2010_12
    ->     WHERE crdate >= 1292428800
    ->       AND crdate < 1293724800
    ->       AND zone_code IN (21, 22))
    ->     AND zone_code IN (21, 22)) ;
ERROR 138 (HY000): IDB-1001: Function 'trigcond' can only be used in the outermost select or order by clause and cannot be used in conjunction with an aggregate function.
 
语句可解析,而不可执行,报了一个错误
 
ICE支持多层嵌套使用了相关的参数
 
Saver  10:23:37
你那边ICE跑这种多层嵌套的语句会报错么?
吴炳锡  10:24:07
ICE需要开启一个参数就行了.
吴炳锡  10:24:29
没看到order by 这个字段呀.
Saver  10:24:32
ICE开啥参数?
吴炳锡  10:25:21
AllowMySQLQueryPath = 1
 
 
 
重启服务后执行该操作
14 | root | localhost       | qt_gamelog_new | Query   |  401 | Sending data | SELECT    COUNT(DISTINCT acc_name)  FROM   login_2011_01  WHERE crdate >= 1293811200   AND acc_name  |
呆住了。。。
某BUG。。。无语中
阅读(1523) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-09 13:37:56

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com