android中的大写字母敏感案例

时间:2013-12-14 04:00:05

标签: android mysql

在我的MYSQL数据库中保存的电子邮件是jiaweitan05@gmail.com。当我使用所有资本案例登录JIAWEITAN05@GMAIL.COM这样的电子邮件时,由于每个字母都是正确的,因此登录成功。但是我应该如何处理电子邮件输入的资本敏感案例。因此,当用户输入的 JIAWEITAN05@GMAIL.COM 同时将SQL查询与小资本 jiaweitan05@gmail.com 进行比较时,由于资本区分大小写而不匹配。或者我应该考虑实现这个功能吗?

3 个答案:

答案 0 :(得分:0)

您可以检查电子邮件是否包含大写字母:

boolean isUpperCase =false;
for(int i=0;i<string.length;i++)
{
  isUpperCase = Character.isUpperCase("My String".charAt(i));

}

 if(isUpperCase==true)
    {
    // give error to user
    }

答案 1 :(得分:0)

你可以试试像

这样的东西
SELECT * FROM table_name WHERE UPPER(column_name) = UPPER('jiaweitan05@gmail.com')

答案 2 :(得分:0)

尝试使用case-insensitive collation。对c ause a区分大小写的comparison of非二进制字符串to be case insensitive, use COLLATE命名不区分大小写的排序规则

Select * from table
where email = 'JIAWEITAN05@GMAIL.COM' collate utf8_bin

您必须更改列名

email varchar(size) collate utf8_bin

二进制字符串在比较中区分大小写。要将字符串与不区分大小写进行比较,请将其转换为nonbinary字符串,并使用COLLATE命名不区分大小写的排序规则

示例:

mysql>SET @s = BINARY 'aBcD';
mysql> SELECT @s, LOWER(@s), UPPER(@s);

+------+-----------+-----------+
| @s   | LOWER(@s) | UPPER(@s) |
+------+-----------+-----------+
| aBcD | abcd      | ABCD      |
+------+-----------+-----------+