【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?

身为一名前端工程师, 对于 SQL懂得程度并不是很深刻, 盘点一些小我工作碰到的问题,给大年夜家普及下常识, 以及记录本身若何解决这些问题的。
SELECT 萌芽语句不区分字母大年夜小写?
SELECT IN 语句次序不相符传入时请求?
信赖这是一个非经常见的问题了, 而这个问题的原因重要照样表字符集引起的。
假设存在config表构造:
Field Type Allow Null Default Value key varchar(255) No value varchar(255) No id int(11) No表内数据如下:
key value id VERSION 1.0.1 1 version 2.0.1 2履行语句为:
- SELECT `key`,`value` FROM config WHERE `key` = 'version' LIMIT 1;
等待结不雅:
key value version 2.0.1SELECT LOCATE 与 LIKE 差别应用
履行结不雅:
为什么会有这种现象?
mysql 默认对字符匹配排序大年夜小写不敏感, 字段包含 varchar, char, text 内容. 如不雅要确切要区分大年夜小写, 则在建表或者查表的时刻应用 BINARY 属性. 二进制的 A 与 a 照样有区其余 ~~
履行语句:
解决筹划1 : 修改sql语句
- SELECT `key`,`value` FROM config WHERE `key` = binary('version') LIMIT 1;
或者
- SELECT `key`,`value` FROM config WHERE binary `key` = 'version' LIMIT 1;
解决筹划2 : 修改表构造
建表语句
- CREATE TABLE `config` (
- `key` BINARY varchar(255) NOT NULL,
- `value` BINARY varchar(255) DEFAULT NULL,
- `id` int(11) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
推荐阅读
BlackBerry高级副总裁KaivanKarimi:营造汽车行业安全文化
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 【51CTO.com原创稿件】移动设备、物联网的快速成长为人们的生活带来了很多便利和改变,同时也催促着全世界的>>>详细阅读
地址:http://www.17bianji.com/lsqh/39990.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示