今天有个测试人员报告说导入通讯录的程序有点问题,无法导入或者只能部分导入,但不会报错。
导入通讯录时会检查联系人姓名是否会在待导入的群组中,如果不在才导入,否则忽略。
我从日志中找出了一个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
分享到:
相关推荐
总的来说,Bugfree是一个实用的bug管理系统,它充分利用了JSP的动态网页能力和MySQL的数据管理优势,为软件开发团队提供了一个便捷的工具,以更好地追踪、管理和解决项目中的bug,从而提升整个项目的质量和效率。...
MantisBT是一个使用php和MySQL编写的bug跟踪系统。 该工具可以安装在UNIX, Mac和Windows等。 如果你正在创建自己的软件,并有自己的网站,那么你需要追踪所有与你的软件相关的问题。 这就是你需要bug跟踪工具的地方...
MySQL5.0是BugFree推荐的数据库版本,需要创建一个新的数据库用于存储BugFree的数据。在MySQL命令行客户端中,执行创建数据库的SQL语句,然后设置相应的用户名和密码。确保这些信息在后续的BugFree安装过程中能正确...
本论文的主要目的是设计和实现一个基于SSM(Spring+SpringMVC+MyBatis)框架和MySQL数据库的软件BUG管理系统。该系统旨在提供一个高效、可靠的BUG管理平台,帮助开发者和测试人员更好地管理和跟踪软件BUG。 系统...
在 Windows 操作系统中部署一个集成环境(如 Apache、PHP、MySQL 和 BugFree),对于搭建 Web 开发平台至关重要。以下将详细介绍整个安装过程。 #### 一、安装 Apache 1. **下载与选择版本**: - 首先访问 Apache...
1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了一个全面的编程和配置模型,可以简化开发并鼓励良好的编程习惯。在本系统中,Spring可能被用来管理Bean的生命周期,实现依赖注入,以及处理事务管理...
这个问题在MySQL的某些版本中被证实是一个bug。 第一个SQL语句: ```sql SELECT COUNT(1) FROM APPLY t WHERE EXISTS (SELECT r.APPLY_ID FROM RECORD r WHERE t.APPLY_ID = r.APPLY_ID); ``` 这个语句的作用是找出...
综上所述,基于SSM+MySQL的软件Bug管理系统为软件开发团队提供了一个高效、可靠的工具,不仅有助于提升软件质量,还能促进团队之间的协作和沟通。通过对技术栈的选择、系统需求的分析、数据库的设计以及具体功能的...
Bug是在软件测试的过程中或者在使用过程中发现的,但目前没有一个专业的系统可以记录Bug的信息,也无法追踪Bug的处理流程,这对软件行业的发展是很不利的。 软件测试是经常容易被忽视一个阶段,因为大多数编程人员只...
### Apache+SVN+MySQL+PHP+SVNManager+BugFree 完全安装手册 #### 一、Apache+SVN 安装与配置 ##### 1. 安装 Apache 2.2.9 在安装 Apache 之前,请确保你的计算机运行的是 Windows 2000、Windows XP SP1 或 ...
8.0.31是一个维护版本,修复了前一版本中发现的bug,并可能包含一些性能提升和安全更新。 **二、安装MySQL 8.0.31 on Windows** 1. **下载安装包**:首先,你需要从MySQL官方网站下载适合Windows系统的安装包,...