作家
登录

【MYSQL】业务上碰到的SQL问题整理集合

作者: 来源: 2017-12-20 16:04:47 阅读 我要评论

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


【MYSQL】营业上碰着的SQL问题整顿集合

身为一名前端工程师, 对于 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
履行语句为:

  1. SELECT `key`,`value` FROM config WHERE `key` = 'version' LIMIT 1; 

等待结不雅:

key value version 2.0.1

SELECT LOCATE 与 LIKE 差别应用


履行结不雅:

key value VERSION 1.0.1


为什么会有这种现象?

mysql 默认对字符匹配排序大年夜小写不敏感, 字段包含 varchar, char, text 内容. 如不雅要确切要区分大年夜小写, 则在建表或者查表的时刻应用 BINARY 属性. 二进制的 A 与 a 照样有区其余 ~~

履行语句:

解决筹划1 : 修改sql语句

  1. SELECT `key`,`value` FROM config WHERE `key` = binary('version') LIMIT 1; 

或者

  1. SELECT `key`,`value` FROM config WHERE binary `key` = 'version' LIMIT 1; 

解决筹划2 : 修改表构造

建表语句

  1. CREATE TABLE `config` ( 
  2.  
  3.   `keyBINARY varchar(255) NOT NULL
  4.  
  5.   `value` BINARY varchar(255) DEFAULT NULL
  6.  
  7.   `id` int(11) NOT NULL
  8.  
  9.   PRIMARY KEY (`id`) 
  10.  
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     1/4    1 2 3 4 下一页 尾页

      推荐阅读

      BlackBerry高级副总裁KaivanKarimi:营造汽车行业安全文化

    【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 【51CTO.com原创稿件】移动设备、物联网的快速成长为人们的生活带来了很多便利和改变,同时也催促着全世界的>>>详细阅读


    本文标题:【MYSQL】业务上碰到的SQL问题整理集合

    地址:http://www.17bianji.com/lsqh/39990.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)