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

  身为一名前端工程师,对于 SQL了解程度并不是很深刻,盘点一些个人工作遇到的问题,给大家普及下知识,以及记录自己如何解决这些问题的。

  mysql 默认对字符匹配排序大小写不敏感,字段包括varchar,char,text内容。如果要确实要区分大小写,则在建表或者查表的时候使用BINARY属性。二进制的A与a还是有区别的 ~~

  明明是username优先于email,结果却是email优先于username。原因在于IN查询只负责查询,不负责排序,而默认排序是用id asc,所以得到了一个不符合IN查询的结果。

  mysql 支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。

  引用一段 关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析 内容。

  如果我们想要查询以app或h5开头的命名空间的所有配置项,可以使用LIKE语句。

  LIKE在字符串全匹配,以及前置查询如h5.%的时候, 如果存在索引会有一定的优化作用。不会进行全表扫描。

  mysql,sql里面的知识确实让人感觉深奥。此时此刻我只是解决了我遇到问题,一会也会遇到更多不一样的问题,而这也是学习sql,计算机的魅力。以后遇到更多的关于SQL的问题,会不断更新...

  MySQL - 事务的启动 / 设置 / 锁 / 解锁——入门返回搜狐,查看更多

相关阅读