MySql Bit字段查询的奇怪问题

今天一个小伙伴遇到一个奇怪的问题:数据库版本是mysql8,有两张表,都有一个名为valid的bit字段,其中一张表用valid=‘1‘可以正常查到数据,另一张表查不到。

百思不得其解,万能的度娘也没有答案。

最后,反复对比两张表的DDL,发现不正常的那张表,在valid字段上居然建了索引!正常的表上没有索引。删除字段上的索引后,一切正常。

一点思考:有索引的时候,是通过索引的值与查询条件进行匹配的,验证mysql里bit字段索引值匹配的时候,隐式数据类型转换出了问题?

原文地址:https://www.cnblogs.com/oliverreal/p/12608883.html

时间: 2024-11-29 09:11:03

MySql Bit字段查询的奇怪问题的相关文章

go-sql-driver包 实现mysql不定字段查询

go-sql-driver包是一个第三方包 下载地址http://github.com/go-sql-driver/mysql 下面直接上代码 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { //连接数据库 db, err := sql.Open("mysql", "root:@

PDO 查询mysql返回字段整型变为String型解决方法

PDO 查询mysql返回字段整型变为String型解决方法 使用PDO查询mysql数据库时.运行prepare,execute后,返回的字段数据全都变为字符型. 比如id在数据库中是Int的.查询后返回是String型. 对于php这样的弱类型的语言.影响不大. 在做API返回数据时.假设类型与数据库不一致,对于java和Objective C这些强类型,影响就非常大了. 解决方法: <?php $pdo = new PDO($dsn, $user, $pass, $param); // 在

mysql数据库查询之对应库对应表中的注释信息查询以及加字段查询

select * from information_schema.columns where table_schema = 'db' #表所在数据库 and table_name = 'tablename' ; #你要查的表 除了上述方法外还可以加上字段查询 使用mysql -uyourroot -pyourpassword 登录数据库 再使用use database:选中数据库 就可以在mysql查询表中包含有该字段中的行对应的注释信息 其中'WH_BU_ORDER_RELATION'为数据库

python3 mysql 多表查询

python3 mysql 多表查询 一.准备表 创建二张表: company.employee company.department #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male'

mysql timestamp字段定义的

Cause: java.sql.SQLException: Cannot convert value '2017-07-26 20:40:41.000000' from column 10 to TIMESTAMP.; SQL []; Cannot convert value '2017-07-26 20:40:41.000000' from column 10 to TIMESTAMP.; nested exception is java.sql.SQLException: Cannot co

步步深入:MySQL架构总览-&gt;查询执行流程-&gt;SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage Engin

MySQL 表子查询

MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据. MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: aid title content uid 1 文章1 文章1正文内容... 1 2 文章2 文章2正文内容... 1 3 文章3 文章3正文内容... 2 4 文章4 文章4正文内容... 3 blog 表: bid title content uid 1 日志1 日志1正文内容... 1 2 文章2 文章2正文内容... 1

MySQL架构总览-&gt;查询执行流程-&gt;SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的'SQL Layer',下层是各种各样对上提供接口的存储引擎,被称为'Storage Engin

mysql系统变量查询

mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整,所以我们首先得会查询系统变量. 1. 查询全局变量:show global variables \G; 2. 查询会话变量:show session variables \G;或show variables: 可以看到,变量表包含variable_name,value两个字段,所以可以通过这两个字