使用select 语句进行查询时,变量名不加引号会导致的错误

使用select 语句进行查询时,变量名不加引号会导致的错误今天做PHP项目时,数据库类找了个别人封装好的,使用时候遇到了一些问题,看了他的源码,发现了一些,数据库上的错误。 假设一个数据库表中存有如下信息,其中login_uuid字段数据类型为varcha…

使用select 语句进行查询时,变量名不加引号会导致的错误

 

假设一个数据库表中存有如下信息,其中login_uuid字段数据类型为varchar

使用select 语句进行查询时,变量名不加引号会导致的错误

当我们查找999这条数据时,使用这样的查询语句

使用select 语句进行查询时,变量名不加引号会导致的错误

查询出来的结果也是,我们所期望的

使用select 语句进行查询时,变量名不加引号会导致的错误

但是,如果没有在999处加引号,会出现错误

使用select 语句进行查询时,变量名不加引号会导致的错误

查询结果为

使用select 语句进行查询时,变量名不加引号会导致的错误

所有,999开头的都查出来了,原因如下

这样会走mysql的隐式转换的,实际是走全表扫描,把每行都执行CAST(login_uuid as signed int)后与where条件的999比较

即,把每个varchar都强转成int去和999比较(因此a999是找不到的)
可以通过select CAST(“999+” as signed int)= 999;看结果

发现果然是1

使用select 语句进行查询时,变量名不加引号会导致的错误

另外就是大家比较熟知的了

不加引号会导致强制转换,不走索引,效率低。

最后引用大佬说的话

这是mysql的机制啦,所以比较时候要注意字段的在ddl的类型,用错类型比较,可能会出现全表扫或者有歧义的情况。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9712.html

(0)
上一篇 2023-02-02
下一篇 2023-02-02

相关推荐

  • Python最小值方法:找出列表或序列中的最小值

    Python最小值方法:找出列表或序列中的最小值在Python中,有多种方法来找到一个列表或序列中的最小值。这些方法具有不同的复杂度和功能,你应该根据你的需求来选择最合适的方法。

    2024-03-29
    74
  • 中国最权威的数据网站_数据网

    中国最权威的数据网站_数据网国际知名调研机构沙利文联合头豹研究院发布了《2021年中国分布式数据库市场报告》,报告显示:**腾讯云数据库入选Frost Radar (弗若斯特雷达)领导者象限,增长指数排名第一。**为帮助广大数据

    2023-05-20
    142
  • hbase 内存_hbase性能优化包含哪些选项

    hbase 内存_hbase性能优化包含哪些选项概况: 生产环境HBase集群内存经常处于高位(90%),而且GC之后也是内存依然处于高位,经分析内存全部由集群的regionserver进程所持有,,经常重启之后,大概3-4天就会保持在高位。由上…

    2023-04-04
    156
  • Python是脚本语言吗

    Python是脚本语言吗Python是一种高级的通用编程语言,由Guido van Rossum在1989年发起开发。最初的目标是在Amoeba操作系统上实现一种诱人的脚本语言,因此Guido在设计Python时兼顾了交互性和易读性,这些特点使Python开发人员可以轻松编写小型脚本,并逐渐发展成为用于构建复杂的、高级的、大型软件项目的语言。

    2024-09-10
    29
  • 如何切换远程分支

    如何切换远程分支在Git中,分支是一条独立的时间线,在开发过程中可以使用分支实现各种各样的操作,比如新功能开发、热修复等。而在多人协作的开发环境中,通常需要使用Git的远程分支管理功能,即在远程仓库上创建或删除分支,并在本地同步远程分支的更新。本文将介绍如何在Git中切换远程分支。

    2024-04-26
    73
  • Python实现访问数据库的API接口设计

    Python实现访问数据库的API接口设计SQLAlchemy是一个Python SQL工具和对象关系映射器(ORM),可以方便地实现访问数据库的API接口,适用于多种关系型数据库。它提供了一种简单的方式来定义数据模型,并将其映射到数据库模式。相比于直接使用SQL语句,SQLAlchemy可以轻松地修改数据库模型而不用修改SQL语句。此外,SQLAlchemy还提供了一些高级功能,例如连接池、事务、数据库迁移等,使得访问数据库变得更加方便和可靠。

    2023-12-05
    117
  • 京东张政:内容理解在广告场景下的实践和探索[通俗易懂]

    京东张政:内容理解在广告场景下的实践和探索[通俗易懂]分享嘉宾:张政 京东 算法工程师 编辑整理:AMS 周金星 出品平台:DataFunTalk 导读: 内容生态建设是近几年互联网快速发展的关键动因,也是AI化的重点方向之一。本文主要分享在京东广告业务

    2023-05-23
    140
  • clickhouse可视化_clickhouse hdfs

    clickhouse可视化_clickhouse hdfs行业动态 ClickHouse Cloud正式GA,同时,B轮融资得到进一步增加 这是由ClickHouse官方推出云服务,启用新域名:clickhouse.cloud ,类似于MongoDB的Atl

    2023-06-19
    178

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注