mysql> SELECT DISTINCT username,password,email FROM t_u_e_p_csdn_net WHERE username LIKE 'sbboy' OR email LIKE 'sbboy@%';
+----------+----------+-------------------+
| username | password | email |
+----------+----------+-------------------+
|sbboy | 19890101 | sbsqqboy@163.com
+----------+----------+-------------------+
1 row in set (0.00 sec)
mysql> SELECT DISTINCT username,email,password FROM t_u_e_p_csdn_net WHERE username LIKE 'sbboy' OR email LIKE 'sbboy@%';
+----------+-------------------+----------+
| username | email | password |
+----------+-------------------+----------+
| 19890101 |sbsqqboy@163.com
+----------+-------------------+----------+
1 row in set (0.00 sec)
补充个表结构。。
t_u_e_p_csdn_net | CREATE TABLE `t_u_e_p_csdn_net` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL DEFAULT '',
`email` varchar(32) NOT NULL DEFAULT '',
`password` varchar(32) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `email` (`email`),
KEY `username` (`username`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=12599950 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
再次补充,不用DISTINCT也是这样的
mysql> SELECT username,password,email FROM t_u_e_p_csdn_net WHERE username LIKE
'sbboy' OR email LIKE 'sbboy@%';
+----------+----------+-------------------+
| username | password | email |
+----------+----------+-------------------+
|sbboy | 19890101 | sbsqqboy@163.com
+----------+----------+-------------------+
1 row in set (0.00 sec)
mysql> SELECT username,email,password FROM t_u_e_p_csdn_net WHERE username LIKE
'sbboy' OR email LIKE 'sbboy@%';
+----------+-------------------+----------+
| username | email | password |
+----------+-------------------+----------+
| 19890101 |sbsqqboy@163.com
+----------+-------------------+----------+
1 row in set (0.00 sec)
--------------------------------------------------------
再次补充 ,username = 也没用
mysql> SELECT DISTINCT username,email,password FROM t_u_e_p_csdn_net WHERE usern
ame = 'sbboy' OR email LIKE 'sbboy@%';
+----------+-------------------+----------+
| username | email | password |
+----------+-------------------+----------+
| 19890101 |sbsqqboy@163.com
+----------+-------------------+----------+
1 row in set (0.01 sec)
mysql> SELECT username,email,password FROM t_u_e_p_csdn_net WHERE username = 'sb
boy' OR email LIKE 'sbboy@%';
+----------+-------------------+----------+
| username | email | password |
+----------+-------------------+----------+
| 19890101 |sbsqqboy@163.com
+----------+-------------------+----------+
1 row in set (0.00 sec)
我在想会不会是下面的问题导致的:
WHERE username LIKE 'sbboy' OR email LIKE 'sbboy@%';
username后都是固定值'sbboy'了,干嘛还like模糊匹配呢?直接用“=”
mysql> SELECT username,email,password FROM t_u_e_p_csdn_net WHERE username ='sbboy' OR email LIKE 'sbboy@%'\G;
==!,这个问题,我觉得可以先再放一放。我现在想说得是!!!你们用户表的的password字段,不加密?!还想重蹈csdn覆辙?!用户谁还敢用你们的业务啊!!!
不好意思,容我再次编辑下,刚刚我又无意看到了一点,你的表名是t_u_e_p_csdn_net
,我错了你赢了!继续51cto or 博客园。
另外,我在SQL Fiddle里执行结果是正常的。
sql执行结果