select count(*) as n from user where username = 'xxx...';
用上面的语句检查一下
用上面的语句检查一下
解决方案 »
- mysql怎么用存储过程做增量备份?
- mysql event 问题
- mysql在备份数据库的时候,还能访问吗
- php 连接Mysql 问题
- (救急)mysql连接报错:ERROR 2013 (HY000): Lost connection to MySQL server during query
- 求一字符串中的最小值
- 对一个大表进行很多次不同条件的count查询,如何提高速度?
- Mysql里text类型的修改问题,一个对高手来说简单的问题
- 请问我如何WIN2000下装mysql的jdbc驱动,以及如何连接
- mysql 多列group by 索引优化
- 如何修改mysql的默认字符集?--保证给分!
- 我是一个mysql的初学者,请教一个问题!
我打
select count(*) from user where username = '灿烂涅磐'反回结果是0
可插入十报错:java.sql.SQLException: Invalid argument value: Duplicate entry '灿烂涅磐' for key 2 SQL:INSERT INTO `user` ( `username`, `password`, `registertime`) VALUES ( '灿烂涅磐', '12345', '1091758978523');我确定表里没有username= '灿烂涅磐'
这个问题呀.
给你两个解决办法.第一个方法.设置默认字符集为GBK.第二个方法.设置 username 字段为 BINARY
两种方法各有利弊吧.第一个方法. 在大多数情况是工作得都非常好.
但英文半角y 与 ~ 字符无法正确区分
例:
mysql> SHOW GLOBAL VARIABLES LIKE 'character_set';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| character_set | latin1 |
+---------------+--------+
1 row in set (0.00 sec)mysql> SELECT 'y' = '~';
+-----------+
| 'y' = '~' |
+-----------+
| 0 |
+-----------+
1 row in set (0.00 sec)mysql> SHOW GLOBAL VARIABLES LIKE 'character_set';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| character_set | gbk |
+---------------+-------+
1 row in set (0.00 sec)mysql> SELECT 'y' = '~';
+-----------+
| 'y' = '~' |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
第二个方法.
该用户名将会以严格的区分大小方式进行比较.
同时如果使用 username LIKE 'A%' 之类的操作时.可能会返回不需要的结果
就我的建议而言.是使用第一个方法
INSERT IGNORE INTO `user` ( `username`, `password`, `registertime`) VALUES ( '灿烂涅磐', '12345', '1091758978523');
Variable_name Value
character_set gbk
一样会出现这个问题.这是为什么?
我的程序可能会出现很多漏洞..因为我在程序里并没有做大小写检查,这样在匹配用户名上我怕...
我想知道为什么明明表里不存在这个username的字段,我就不能插进去呢?
然后在插入前搜索数据.也是不存在的.
但是在插入时却出现重复键的问题?呵呵,不太可能的呀.
REPAIR TABLE `user1` USE_FRM+-----------+--------+----------+----------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-----------+--------+----------+----------------------------------------+
| log.user1 | repair | warning | Number of rows changed from 0 to 51924 |
| log.user1 | repair | status | OK |
+-----------+--------+----------+----------------------------------------+之后插入成功
原因不明