mysql查询对大小写不敏感的问题

**之前项目到遇到了这样的问题来总结一下**

项目中经常用到模糊查询,如:有个username字段的的内容是:AA812135023,我们查询这条记录,查询的sql select * from 表 where username 
like '%AA%',能找到这条记录,但是用 select * from 表 where username like '%aa%' 也能查询到这条记录.

问题出在哪里?出现在创建数据表上,应该用下面的code创建表

CREATE TABLE `message` (
  `msgId`      BIGINT(20) NOT NULL
  COMMENT '消息ID',
  `bizType`    INT(11)    NOT NULL
  COMMENT '消息业务类型   参见枚举BizType',
  `bizId`      INT(11)    NOT NULL
  COMMENT '消息对应的业务ID',
  `src`        BIGINT(20) NOT NULL
  COMMENT '发送者ID',
  `dst`        BIGINT(20) NOT NULL
  COMMENT '接受者ID',
  `msgStatus`  INT(11)    NOT NULL
  COMMENT '消息状态   参见枚举MsgStatus',
  `status`     INT(11)             DEFAULT '0'
  COMMENT '参考枚举:Status',
  `createBy`   INT(11)             DEFAULT '0',
  `createTime` DATETIME            DEFAULT NULL,
  `updateBy`   INT(11)             DEFAULT '0',
  `updateTime` DATETIME            DEFAULT NULL,
  `lastUpdate` TIMESTAMP  NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`msgId`)
)
  ENGINE = InnoDB //使用的搜索引擎,有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)
  DEFAULT CHARSET = utf8 //编码格式,有时候数据库乱码就出现在这里.
  DEFAULT COLLATE = utf8_bin;//查询对大小写敏感

那不是每个表都需要下面这段东西,这样显的比较繁琐,

 ENGINE = InnoDB //使用的搜索引擎,有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)
  DEFAULT CHARSET = utf8 //编码格式,有时候数据库乱码就出现在这里.
  DEFAULT COLLATE = utf8_bin;//查询对大小写敏感

我们创建数据库的时候,用下面的code就不用每个表都写上面这一段了

create database test default character set utf8 collate utf8_bin;

如果你的数据已经建好了,修改即可

ALTER SCHEMA `bbj_local`  DEFAULT CHARACTER SET utf8  DEFAULT COLLATE utf8_bin ;

如何修改mysql默认的搜索引擎?

1、查看mysql存储引擎命令,在mysql>提示符下搞入show engines;字段 Support为:Default表示默认存储引擎  
2、设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句
3、重启mysql服务器:mysqladmin -u root -p shutdown或者service mysqld restart 登录mysql数据库,
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一缕阳光直射你的心扉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值