zoukankan      html  css  js  c++  java
  • MySQL区分大小写

    在使用MySQL查询数据时发现,不管大小写都能查询到数据,也就是说其对大小写不敏感,没有区分大小写。先看下面的案例:

    1.演示案例

    1)创建表插入数据

    CREATE TABLE `user` (
      `username` varchar(255) DEFAULT NULL,
      `password` varchar(255) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    INSERT INTO user(username, password) VALUES ('abc', '123');
    INSERT INTO user(username, password) VALUES ('Abc', '456');
    INSERT INTO user(username, password) VALUES ('bcd', '444');

    2)查询

    select * from user where username = 'abc';

    结果如下:

     查询username是"abc"的结果把"Abc"的也查询出来了。若需要区分大小写,需要进行配置。

    2.解决办法

    2.1方法一:查询时区分

    在查询时,在where关键字后面添加binary关键字,那么就会区分大小写去查询。

    select * from user where binary username = 'abc';

    2.2方法二:修改字段属性区分

    字段默认的规则是ut8***_ci。以 “_ci" 结尾的表示不区分大小写,以 “_bin" 结尾的表示区分大小写。

    修改需要区分大小写的字段的校对规则为utf8****_bin ,需要进行大小写区分

    ALTER TABLE user MODIFY COLUMN username varchar(255) BINARY CHARACTER SET utf8 COLLATE utf8_bin;

    修改后查询,便会区分大小写

    select * from user where username = 'abc';

    2.3方法三:创建表时区分

    在创建表时指定binary,那么可以直接查询,,也很方便。

    CREATE TABLE `user` (
      `username` varchar(255) binary  DEFAULT NULL,
      `password` varchar(255) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
  • 相关阅读:
    Rust语言学习笔记(11)
    Rust语言学习笔记(10)
    Rust语言学习笔记(9)
    Rust语言学习笔记(8)
    趣味编程:静夜思(Rust版)
    Python sorted()
    Python 魔法方法
    Python filter()
    Python的map和reduce
    Python函数的参数
  • 原文地址:https://www.cnblogs.com/zys2019/p/14775928.html
Copyright © 2011-2022 走看看