返回顶部
首页 > 资讯 > 数据库 >MySQL中where查询的案例分析
  • 580
分享到

MySQL中where查询的案例分析

2024-04-02 19:04:59 580人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Mysql中where查询的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。不能说不行今天加班,业务的妹子过来找我们查数据,说

这篇文章将为大家详细讲解有关Mysql中where查询的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MySQL中where查询的案例分析

不能说不行

今天加班,业务的妹子过来找我们查数据,说数据查出来量不对。一看妹子的sql是这样写的:

select distinct * from prvt_pub_stmt_vnwhere issue_time >= '2020-08-01'and issue_time <= '2020-08-01'and prs_dmtd_cde in ('p','n');复制代码

我分析来分析去,感觉没有问题呀,于是查了一下prs_dmtd_cde 字段的码值,发现不仅有大写的P还有小写的p,而妹子只查了小写的p,数据量却多了很多。

于是我就把妹子的SQL改了一下:

select distinct * from prvt_pub_stmt_vnwhere issue_time >= '2020-08-01'and issue_time <= '2020-08-01'and prs_dmtd_cde in ('p','n','P','N');复制代码

查出来的结果竟然是一样的。这就。。。

在妹子面前当然不能说不行啊,于是让妹子先回去再看看。

我这边飞快的上网查了查,发现竟然是mysql 的编码格式和排序规则的问题。

知其所以然

我们MySQL数据库基本上用的都是 utf8 的编码格式,而 utf8 编码格式还存在各种排序规则。常用的如下:

utf8_bin:将字符串中的每一个字符以十六进制方式存储数据,区分大小写。

utf8_general_ci:不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

再查一下默认的字符集设置:

刚好 utf8 编码格式的默认排序规则就是:utf8_general_ci——即不区分大小写。

解决方案

问题原因找到了,那就对症下药好了。

解决方法自然就是直接修改字段的 collate 属性为 utf8_bin。

ALTER TABLE prvt_pub_stmt_vn CHANGE prs_dmtd_cde prs_dmtd_cde VARCHAR(255) 
CHARACTER SET utf8 COLLATE utf8_bin;复制代码

另外还有一种解决方法,就是不改变原有表结构,而是改SQL。在查询字段前加上 binary 关键字。

select distinct * from prvt_pub_stmt_vnwhere issue_time >= '2020-08-01'and issue_time <= '2020-08-01'and binary prs_dmtd_cde in ('p','n');复制代码

Mysql 默认查询是不分大小写的,可以在 SQL 语句中加入 binary 来区分大小写。

binary 不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。

最后

问题解决了,当然是去告诉妹子这个问题多么多么深奥,我又是如何剖析原理最终解决的了。

看着妹子投来的崇拜目光,当然是很开心了。

最最重要的还是要记住这个问题,以后在遇到字段大小写敏感的业务,建表的时候要注意字符集和排序规则的选择,以避免今天这种事情的发生。

关于MySQL中where查询的案例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中where查询的案例分析

本文链接: https://lsjlt.com/news/51181.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中where查询的案例分析
    这篇文章将为大家详细讲解有关MySQL中where查询的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。不能说不行今天加班,业务的妹子过来找我们查数据,说...
    99+
    2024-04-02
  • mysql中max与where的示例分析
    这篇文章主要介绍mysql中max与where的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql max 与 where 间的执行问题执行sql:...
    99+
    2024-04-02
  • Thinkphp5的where查询
    目录 一、get 获取一条记录 二、all 获取多条记录 三、find 查询某一条 四、select 多条查询 五、value 按字段查询一条 六、查询数目 七、whereTime() 时间条件查询 八、where查询条...
    99+
    2023-09-01
    thinkphp php 数据库 mysql
  • mysql连接查询中and与where的区别浅析
    1. 建表 CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(255) CHARA...
    99+
    2024-04-02
  • mysql中where条件查询怎么用
    这篇文章给大家分享的是有关mysql中where条件查询怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。-- where字句-- 删除ID值大于10的用户...
    99+
    2024-04-02
  • mysql中where查询语句如何用
    今天小编给大家分享一下mysql中where查询语句如何用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2024-04-02
  • mysql中delete from where子查询的限制是什么
    小编给大家分享一下mysql中delete from where子查询的限制是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!1、使用mysql进行delete...
    99+
    2024-04-02
  • mysql两表查询的案例分析
    小编给大家分享一下mysql两表查询的案例分析,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql两表查询的方法:1、使用“select 字段列表 from 表1,表2 [whe...
    99+
    2024-04-02
  • mysql多表查询的案例分析
    小编给大家分享一下mysql多表查询的案例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql多表查询一般用交叉连接、内...
    99+
    2024-04-02
  • MySQL多表查询案例分析
    本篇内容介绍了“MySQL多表查询案例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!多表查询案列说明笛卡尔积的理解select...
    99+
    2023-06-29
  • mysql中max与where间执行问题的示例分析
    这篇文章主要介绍mysql中max与where间执行问题的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql max 与 where 间的执行问题执...
    99+
    2024-04-02
  • mysql子条件查询的案例分析
    这篇文章将为大家详细讲解有关mysql子条件查询的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中,在一个表表达中可以调用另一个表表达式,这个被调用的表...
    99+
    2024-04-02
  • mysql多表查询的实际案例分析
    本文主要给大家介绍mysql多表查询的实际案例分析,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下mysql多表查询的实际案例分析吧。#案例:选中ci...
    99+
    2024-04-02
  • MySQL查询条件中on和where的区别是什么
    今天就跟大家聊聊有关MySQL查询条件中on和where的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL 语句执行顺序...
    99+
    2024-04-02
  • mysql连接查询中and与where的区别是什么
    小编给大家分享一下mysql连接查询中and与where的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 建表CREATE TA...
    99+
    2023-06-20
  • mysql查询语句join、on、where的执行顺序
    目录一、典型SELECT语句完整的执行顺序二、from三、on四、on 条件与where 条件1、使用位置2、使用对象3、选择与使用五、join 流程mysql 的执行顺序 一、典型SELECT...
    99+
    2022-11-19
    mysql查询语句执行顺序 mysql join mysql on mysql where
  • mysql查询,left join(求并集),where(求交集)
    准备(两张表t1,t2):表t1:mysql> select * from t1;+-------+---------+| t1_id | t1_name |+-------+-------...
    99+
    2024-04-02
  • PHP中如何利用where模糊查询
    PHP是一种广泛使用的脚本语言,随着互联网时代的到来,它成为了最受欢迎的编程语言之一。其中,PHP利用where模糊查询在数据操作中也广泛使用。在PHP语言中,where子句是SQL语句中最重要的一部分,它用于过滤指定表...
    99+
    2023-05-14
    模糊查询 php
  • PHP中怎么利用where模糊查询
    这篇“PHP中怎么利用where模糊查询”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP中怎么利用wher&#...
    99+
    2023-07-05
  • 详解MySQL查询优化中的Using where 和 Using index概念
    这期内容当中小编将会给大家带来有关详解MySQL查询优化中的Using where 和 Using index概念,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作