mysql查询区分大小sql语句小结

公司网站有需求对用户名验证要验证大小写。其实刚开始他注册的时候就就都是大小写,所以没有必要做大小写验证了。但是现在要登陆的验证大小写,那在注册的时候也要对此进行验证。

但是MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象

后来找到一个利用binary临时解决办法

 代码如下 复制代码

SELECT * FROM  ·表名·WHERE binary `user`=’www.111cn.net’

主要关键字binary 有它你就可以区分大小写了。

 代码如下 复制代码

create  table  表名 ( name varchar (20) binary  );

如果哪些字段需要区分大小写在在设计表的就可以这样写。

解决办法二,如果你可以修改my.ini配置可以如下解决大小写问题

A.表名区分大小写

 在my.conf加入:

ower_case_table_names = 0

其中 0:区分大小写,1:不区分大小写
 

B.插入查询时区分大小写

 
字段值需要设置BINARY属性,即可区分大小写。

 设置的方法有多种:

创建时设置:

 代码如下 复制代码

CREATE TABLE T(
A VARCHAR(10) BINARY
);
 

使用alter修改:

 代码如下 复制代码
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;

mysql table editor中直接勾选BINARY项

时间: 2024-10-28 02:37:45

mysql查询区分大小sql语句小结的相关文章

6条比较有用的MySQL数据库操作的SQL语句小结

在MySQL数据库操作中,我们常常编写一些SQL语句来实现自己想要的功能.但是对于初学MySQL数据库的人来说这似乎又有一定的难度.本文我们总结了六条比较有用的SQL语句,初学者可以套用下面的格式,接下来就让我们一起来了解一下这部分内容. 1.计算年数 如果您想通过生日来计算这个人的年龄,可以用以下的语句来实现: SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0; 2.两个时间的差 取得

六条比较有用的MySQL数据库操作的SQL语句小结_Mysql

在MySQL数据库操作中,我们常常编写一些SQL语句来实现自己想要的功能.但是对于初学MySQL数据库的人来说这似乎又有一定的难度.本文我们总结了六条比较有用的SQL语句,初学者可以套用下面的格式,接下来就让我们一起来了解一下这部分内容. 1.计算年数 如果您想通过生日来计算这个人的年龄,可以用以下的语句来实现: SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0; 2.两个时间的差 取得

MYSQL查询字符替换sql语句

 代码如下 复制代码 mysql> update `table_name` set field = replace(field,'.rar','.7z'); table_name:要查询的表名, field:表里的字段名, replace(field,'.rar','.7z'); :正则匹配,把field字段里的 .rar 替换为 .7z 利用replace加正则来替换字符  代码如下 复制代码 UPDATE `table_name` SET `field_name` = replace (`f

MySQL查询重复记录sql语句

常用的语句 1.查找表中多余的重复记录,重复记录是根据单个字段(mail_id)来判断  代码如下 复制代码  SELECT * FROM table WHERE mail_id IN (SELECT mail_id FROM table GROUP BY mail_id HAVING COUNT(mail_id) > 1); 2.删除表中多余的重复记录,重复记录是根据单个字段(mail_id)来判断,只留有rowid最小的记录  代码如下 复制代码 DELETE FROM table WHER

mysql教程删除数据sql语句用法

  mysql教程删除数据sql语句用法 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_name WHERE column_name = some_value 注释:SQL 对大小写不敏感.DELETE FROM 与 delete from 等效. 为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数.该函数用于向 SQL 连接发送查询和命令. 例子 稍早时,我们在本教程中创建了一个名为 "Person" 的表

根据mysql慢日志监控SQL语句执行效率_Mysql

根据mysql慢日志监控SQL语句执行效率 启用MySQL的log-slow-queries(慢查询记录). 在Linux环境下先要找到my.cnf文件(一般在/etc/mysql/),然后可能会发现该文件修改后无法保存,原因是你没有相应的权限,可以从属性中看到该文件的所有者是root,这时要先以root的身份打开它: sudo nautilus /etc/mysql 接着再打开my.cnf文件然后找到[mysqld]标签在下面加上: log-slow-queries=/path/slow.lo

sql语句-mysql定时任务 写下SQL语句

问题描述 mysql定时任务 写下SQL语句 想让MYSQL里面的jpzh表里面的isstaus在晚上00定时更新 那个大侠 写下SQL语句 解决方案 CREATE EVENT e_testON SCHEDULE EVERY 1 DAYSTARTS '2014-12-04 00:00:00'DO UPDATE jpzh SET isstaus=.....; 从 2014-12-04 00:00:00 开始,每天做一次 解决方案二: 你的逻辑好像不太对,按常理开发模式,一般是从应用端控制时间,然后

查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊、、

问题描述 查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊.. 一个是众酬表,一个是会员表,还有个这两者的中间表. 会员可以参与多个众酬 众酬可以被多个会员参与 1.会员角度:会员登录,要查询当前所有的众酬列表并且标记哪些众酬当前会员已参与 2.众酬角度:进入某个众酬详情可罗列当前参与此众酬的会员列表 解决方案 这取决于众筹表怎么设计 解决方案二: select *,(select count(1) from 众筹会员表 where id=z.id) as canyu from 众筹表

mysql-如何打印出MySQL优化之后的SQL语句呢

问题描述 如何打印出MySQL优化之后的SQL语句呢 我们知道SQL优化的基本原则就是是我们的SQL或HQL满足数据库查询优化器,那么我们能够通过什么方式看到查询优化器优化之后的SQL语句呢? 解决方案 MySQL56打印sql语句mysql sql语句优化Mysql sql语句优化 解决方案二: http://blog.csdn.net/wocaonima123987/article/details/7980182