今天有个测试人员报告说导入通讯录的程序有点问题,无法导入或者只能部分导入,但不会报错。
导入通讯录时会检查联系人姓名是否会在待导入的群组中,如果不在才导入,否则忽略。
我从日志中找出了一个SQL语句,如下:
SELECT contact_id, contact_name, contact_title, gender, birthday, specday, idno, profession,
company, dept, region,
address, postcode, mobile, phone, fax, email, qq, home_phone, home_address, other, remarks,
tenant_id, created_by, create_time, modified_by, modify_time FROM mab_contact_info
WHERE contact_name = '陈志林'
AND contact_id IN (SELECT contact_id FROM mab_contact_group WHERE contact_group_id = 36);
我一看,就觉得子查询有点问题,因为mab_contact_group表中根本就没有contact_id字段啊。
mysql> desc mab_contact_group;
+--------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| contact_group_id | int(11) | NO | PRI | NULL | auto_increment |
| contact_group_name | varchar(32) | NO | | NULL | |
| super_group_id | int(11) | YES | MUL | NULL | |
| tenant_id | int(11) | NO | MUL | NULL | |
| contact_group_path | varchar(256) | YES | | NULL | |
| created_by | int(11) | YES | MUL | NULL | |
| create_time | datetime | NO | | NULL | |
| modified_by | int(11) | YES | MUL | NULL | |
| modify_time | datetime | YES | | NULL | |
+--------------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)
但是程序没有报错。于是我把它贴到MySQL中执行,确实不报错,而且找到了数据:
mysql> SELECT contact_id, contact_name, contact_title, gender, birthday, specday,
idno, profession, company, dept, region,
-> address, postcode, mobile, phone, fax, email, qq, home_phone,
home_address, other, remarks, tenant_id, created_by, create_time, modified_by, modify_time
FROM mab_contact_info
-> WHERE contact_name = '陈志林'
AND contact_id IN (SELECT contact_id FROM mab_contact_group WHERE contact_group_id = 36);
+------------+--------------+---------------+--------+----------+---------+------+------------+---------+------+--------+---------+----------+-------------+-------+------+-------+------+------------+--------------+-------+-----------------------------------------------------------------+-----------+------------+---------------------+-------------+-------------+
| contact_id | contact_name | contact_title | gender | birthday | specday | idno | profession | company | dept | region | address | postcode | mobile | phone | fax | email | qq | home_phone | home_address | other | remarks | tenant_id | created_by | create_time | modified_by | modify_time |
+------------+--------------+---------------+--------+----------+---------+------+------------+---------+------+--------+---------+----------+-------------+-------+------+-------+------+------------+--------------+-------+-----------------------------------------------------------------+-----------+------------+---------------------+-------------+-------------+
| 138 | 陈志林 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 13975188486 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 导入自《20121128115430956106_contact班主任及管理人员.xls》第2行 | 3000 | 9024 | 2012-11-28 11:54:32 | NULL | NULL |
+------------+--------------+---------------+--------+----------+---------+------+------------+---------+------+--------+---------+----------+-------------+-------+------+-------+------+------------+--------------+-------+-----------------------------------------------------------------+-----------+------------+---------------------+-------------+-------------+
1 row in set (0.00 sec)
但是把其中的子查询单独执行,会有问题。
mysql> SELECT contact_id FROM mab_contact_group WHERE contact_group_id = 36;
ERROR 1054 (42S22): Unknown column 'contact_id' in 'field list'
mysql>
我的第一反应是,我发现MySQL的一个Bug啦。
。。。。。。
如果你觉得这个事情很有意思或很没意思,请移步到下面的地址看个究竟:
http://www.vktone.com/articles/find-bug-of-mysql-oh.html
分享到:
相关推荐
MantisBT是一个使用php和MySQL编写的bug跟踪系统。 该工具可以安装在UNIX, Mac和Windows等。 如果你正在创建自己的软件,并有自己的网站,那么你需要追踪所有与你的软件相关的问题。 这就是你需要bug跟踪工具的地方...
Bugfree测试平台搭建 打开php.ini,查找index.html,在后面添加上index.htm index.php
自己编写的一个bug管理系统,增删改查功能都有,jsp+mysql
项目管理bugfree 网上下载的都或多或少有问题 现在使用php7.1 + mysql5.0可使用
Windows下安装Apache+php+mysql+bugfree
今天小编给大家分享一个mysql关于exists的一个bug问题,非常不错,感兴趣的朋友一起学习下
使用MySql的窗口函数统计数据时,发现一个小的问题,与大家一起探讨下。 环境配置: mysql-installer-community-8.0.20.0 问题点:在sum对window函数执行时,如果有重复数据,会直接把相同的数据相加,并不是逐步...
基于ssm+mysql的软件bug管理系统源码数据库.zip
基于ssm+mysql的软件bug管理系统源码数据库.docx
最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个...
MySQL Administrator 是用来执行数据库管理操作的程序,比如说配置、控制、开启和关闭...但是如果你发现它缺少一些对你来说有用的特性,或者你发现了一个bug,请访问网址 http://bugs.mysql.com/ 请求增加新的特性或
基于ssm+mysql的软件bug管理系统源码数据库论文.docx
最好用的 MysqlHelper.cs,Mysql Helper 本人多次改进和调整,处理了MySql.Data.dll 中的多个bug导致的程序异常,执行快速,使用方便。【来自金花工具】