iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么在mysql中返回Boolean类型
  • 676
分享到

怎么在mysql中返回Boolean类型

2023-06-15 09:06:26 676人浏览 安东尼
摘要

今天就跟大家聊聊有关怎么在mysql中返回Boolean类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Mysql返回Boolean类型第一种情况,直接返回select&

今天就跟大家聊聊有关怎么在mysql中返回Boolean类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Mysql返回Boolean类型

怎么在mysql中返回Boolean类型

第一种情况,直接返回

select id='22aa' from mytest where age=202  返回1 可封装为trueselect count(*)=1 from mytest where age=202  返回1 可封装为trueselect count(*)=0 from mytest where age=202  返回0 可封装为falseselect count(*)<3 from mytest where age=202  返回1 可封装为trueselect count(*)<=1 from mytest where age=202  返回1 可封装为trueselect name="aa" from mytest where age=10  当name为null时,sql不会报错,返回结果也为nul,参照第二种情况的sql 3 代码会报错

总结:

这种情况类似于java中的判断语句。只是java中=是赋值的意思,所以用了==来做判断,而mysql中赋值用set,判断就直接用=。

第二种情况,返回0或者1也能达到目的

select enable from mytest where age=202  返回1  可封装为trueselect count(*) from mytest  返回4  可封装为Boolean类型,但为falseselect enable from mytest where age=201 返回null  不可封装为Boolean类型,代码会直接报错select id from mytest where age=202   返回'22aa'   可封装为Boolean类型,但为falseselect id from mytest where age=202   返回'true'   可封装为Boolean类型,但为trueselect id from mytest where age=202   返回'false'   可封装为Boolean类型,false//特殊情况select * from mytest  报错Expected one result (or null) to be returned by selectOne(), but found: 4select * from mytest where age=202  返回一组数据false 2019-08-28 202 15 1 ,可以封装为falseselect * from mytest where age=202  返回一组数据true 2019-08-28 202 15 1 ,可以封装为trueselect * from mytest where age=202  返回一组数据aaaa2019-08-28 202 15 1 ,可以封装为false

总结:

mybatis是根据查询到的记录数进行转换的(1=true,0=false)

需要注意的地方:如果查询到多条记录(大于1),返回的却是false, 这时就与我们的期望的刚好相反。这里,可以换其它方法,可以通过返回记录数,进行判断,也可以保证记录在数据库是唯一的。也可以直接用第一种情况解决。

根据第4、5、6条sql语句的测试,如果字符串是"true",就可以封装为true,如果为"false"就可以封装为false,其他情的字符串都为false。

(猜测,并不准确,需要到mysql官网上来查,如果返回的字段是字符串,将其转为Boolean时是按什么规则转换的,猜测是类似于java中的字符串转Boolean方法:Boolean.valueOf(“aaa”) //false,该方法如下)

怎么在mysql中返回Boolean类型

怎么在mysql中返回Boolean类型 至于8、9、10的sql返回一组,而接受数据的只要一个时的情况,为什么就取了id的值来封装,有待继续研究。

MySQL Boolean类型的坑

MySQL中,Boolean只是 tinyint(1) 的别名,也就是说,MySQL中并没有真正的bool类型。而SQLAlchemy生成SQL的时候并没有检测到 这一点,这就导致一个问题,当使用 bool 类型作为查询条件时,用不上索引,从而导致扫表的行为:

> SELECT COUNT(*) FROM message WHERE message.is_national = 1 AND message.updated_at > '2020-01-01 00:00:00' AND message.deleted_at IS NULL;+----------+| COUNT(*) |+----------+| 0        |+----------+1 row in setTime: 0.018s> SELECT COUNT(*) FROM message WHERE message.is_national is true AND message.updated_at > '2020-01-01 00:00:00' AND message.deleted_at IS NULL;+----------+| COUNT(*) |+----------+| 0        |+----------+1 row in setTime: 2.162s

注意观察第一行和第二行的时间,很明显第二行没有用上索引,我们来看看 EXPLaiN 的结果便知道了:

> EXPLAIN SELECT COUNT(*) FROM message WHERE message.is_national = 1 AND message.updated_at > '2020-01-01 00:00:00' AND message.de        leted_at IS NULL;| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra || 1  | SIMPLE | message | ref  | ix_message_updated_at,idx_updated_at_is_national,ix_message_is_national | ix_message_is_national | 1 | const | 1 | Using where |> EXPLAIN SELECT COUNT(*) FROM message WHERE message.is_national is true AND message.updated_at > '2020-01-01 00:00:00' AND messag        e.deleted_at IS NULL;| id | select_type | table   | type | possible_keys | key    | key_len | ref    | rows    | Extra || 1  | SIMPLE | message | ALL  | ix_message_updated_at,idx_updated_at_is_national | <null> | <null>  | <null> | 一个很大的数字 | Using where |

看完上述内容,你们对怎么在mysql中返回Boolean类型有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 怎么在mysql中返回Boolean类型

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在mysql中返回Boolean类型
    今天就跟大家聊聊有关怎么在mysql中返回Boolean类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。mysql返回Boolean类型第一种情况,直接返回select&...
    99+
    2023-06-15
  • Typescript中boolean类型怎么用
    这篇文章主要为大家展示了“Typescript中boolean类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Typescript中boolean类型怎...
    99+
    2024-04-02
  • oracle中boolean类型怎么赋值
    在Oracle数据库中,并没有原生的boolean数据类型,通常使用数字或者字符类型来表示布尔值。常见的做法是使用NUMBER类型,...
    99+
    2024-03-02
    oracle
  • 如何在JavaScript中定义boolean类型
    本篇文章给大家分享的是有关如何在JavaScript中定义boolean类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。javascript是一种什么语言javascript...
    99+
    2023-06-14
  • 在springMVC中controller的返回类型有哪些
    这篇文章将为大家详细讲解有关在springMVC中controller的返回类型有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、返回ModelAndView返回ModelAndVie...
    99+
    2023-06-06
  • mysql中bit和boolean类型的区别是什么
    在MySQL中,BIT和BOOLEAN类型都用于存储逻辑值,但它们有一些区别。 BIT类型: BIT类型用于存储比特位,可以存...
    99+
    2024-04-09
    mysql
  • 返回 Golang 中的联合类型
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《返回 Golang 中的联合类型》带大家来了解一下##content_title##,...
    99+
    2024-04-04
  • jQuery中的find方法返回类型
    本篇内容介绍了“jQuery中的find方法返回类型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!从今天开...
    99+
    2024-04-02
  • C++中Covariant返回值类型详解
    目录前言什么是协变返回值类型(Covariant)协变返回值类型(Covariant)的作用前言 C++中当子类覆写(override)父类虚函数时,子类函数的返回值类型可以和父类函...
    99+
    2024-04-02
  • mybatisPlus返回Map类型的集合怎么写
    今天小编给大家分享一下mybatisPlus返回Map类型的集合怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、自定...
    99+
    2023-07-05
  • 数据库设计中boolean类型怎么处理
    这篇文章主要介绍“数据库设计中boolean类型怎么处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“数据库设计中boolean类型怎么处理”文章能帮助大家解决问题。数据库的boolean值是一个令...
    99+
    2023-06-26
  • 如何在 PHP 中检查函数返回值的类型?
    php 提供三种方法检查函数返回值类型:1. 使用 gettype() 函数;2. 使用 is_*() 函数;3. 使用 instanceof 运算符。这些方法可确保代码健壮性,避免意外...
    99+
    2024-04-10
    php 类型检查
  • 函数返回类型在 C++ 中是如何指定的?
    c++++ 中,函数返回类型指定了函数调用后返回给调用方的值类型。步骤包括:选择与预期返回值相匹配的数据类型(如 int、float、char、bool)。在函数名称前放置选定类型的声明...
    99+
    2024-04-13
    c++
  • Ajax的返回值类型是什么
    这期内容当中小编将会给大家带来有关Ajax的返回值类型是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、返回值之XML类型如果服务器的响应头中Content-type的内容为text/xml时,此时...
    99+
    2023-06-08
  • ajax请求返回类型是什么
    这篇“ajax请求返回类型是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ajax请求...
    99+
    2024-04-02
  • java中boolean类怎么使用
    Boolean类是Java中的一个包装类,用于封装基本数据类型boolean的值。Boolean类提供了一些方法和常量来操作和表示b...
    99+
    2023-09-29
    java
  • C++ 函数返回值类型在多态性中的作用
    多态中,函数返回值类型规定了当派生类重写基类方法时,返回的具体对象类型。派生类方法的返回值类型可以与基类相同或更具体,允许返回更派生的类型,从而提高灵活性。 C++ 函数返回值类型在多...
    99+
    2024-04-13
    多态性 函数返回值类型 c++
  • 怎么理解C++11的返回类型后置
    这篇文章主要介绍“怎么理解C++11的返回类型后置”,在日常操作中,相信很多人在怎么理解C++11的返回类型后置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解C++11的返回类型后置”的疑惑有所帮助!...
    99+
    2023-06-19
  • java中的方法返回值使用泛型,实现灵活的返回值类型
      使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的java bean类型,所以要考虑怎么样给调用者返回正确的返回...
    99+
    2023-09-02
    mybatis java spring
  • 如何在Go语言中启用返回值类型推断
    go 1.18 引入类型推断,通过编译器自动推断变量类型,可显著提升代码可读性和简洁性:启用类型推断:在 go 文件中添加 -trimpath 标志。无需显式指定变量类型:变量值将自动推...
    99+
    2024-04-29
    go语言 返回值类型推断 代码可读性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作