MySQL 整型字段中查询字符串,返回了所有为0的结果

在MySQL中,在整型字段中查询字符串,返回了所有为0的结果,应该返回null或空。

例如表结构信息:

CREATE TABLE `t` (
  `name` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

表中数据:

mysql> select id from t;
+----+
| id |
+----+
|  0 |
|  0 |
|  1 |
+----+

查询字符串a,返回了所有是0 的:

mysql> select id from t where id=‘a‘;
+----+
| id |
+----+
|  0 |
|  0 |
+----+

警告信息:

mysql> show warnings;
+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: ‘a‘ |
+---------+------+---------------------------------------+

查询字符串‘1a‘,可以返回1:

mysql> select id from t where id=‘1a‘;
+----+
| id |
+----+
|  1 |
+----+

报警信息:

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: ‘1a‘ |
+---------+------+----------------------------------------+

这种情况不经常遇到,解决办法是在程序中进行数据类型的判断,对前端传入的值进行校验

欢迎批评指正

时间: 2024-11-29 08:17:57

MySQL 整型字段中查询字符串,返回了所有为0的结果的相关文章

SQLServer中查询的数字列前面补0返回指定长度的字符串

SQLServer中查询的数字列前面补0返回指定长度的字符串: 如: 角本如下: /****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [ID] ,[SN] ,[Name] FROM [EduDB].[dbo].[TestTab] select Right('0123456',SN) from TestTab; select RIGHT(REPLICATE('0',5)+CAST(SN AS var

mvc中查询字符串请求过长

最近在mvc中做导出Excel功能,通过页面把字段id和对应的中文名称通过a标签传给控制器的过程中,总是报错. 1.第一次错误截图 具体解决方案: 可以配置 IIS 服务器以拒绝查询字符串长度大于指定值的请求.如果请求的查询字符串大于所配置的值,便会返回此错误.如果需要增加查询字符串的允许长度,请修改configuration/system.webServer/security/requestFiltering/[email protected] 设置. 即确认 applicationhost.

010整型、浮点型、字符串型、列表型、字典型、布尔型

整型.浮点型.字符串型.列表型.字典型.布尔型 一.整型(int) 1.1作用 表示人的年龄.各种号码.级别 1.2定义 age = 18 # age=int(18) print(id(age)) print(type(age)) print(age) 输出结果: 4530100848 <class 'int'> 18 1.3 如何用 加减乘除.逻辑判断(大于.小于) 二.浮点型(float) 2.1 作用 表示身高.体重.薪资 2.2 定义 salary = 2.1 # salary=flo

如何用js获取浏览器URL中查询字符串的参数

首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主机名和当前的URL的端口号.本博客首页返回www.cnblogs.com hostname:设置或返回当前URL的主机名.本博客首页返回www.cnblogs.com hash:设置或返回从井号(#)开始的URL(锚).本博客首页返回 空 pathname:设置或返回当前URL的路径部分.本博客首页

C++整型、浮点型与字符串型相符转换

前言 整型.浮点型与字符串的相互转换可以用自带的函数来实现,本人使用的是vs2015,所以下面的函数需要改变一下,请看下面的总结. 正文 一.整型转字符串型 1. int转为字符串 itoa(int _Value, char *_Buffer, int _Radix); 需改为_itos_s(int _Value, char *_Buffer, size_t _BufferCount, int _Radix); _Radix:表示进制,若十进制则Radix为10 _BufferCount:存储的

HTTP-URL中查询字符串格式化

HTTP-URL中查询字符串格式化 GET请求是最常见的请求类型,常用语向服务器查询某些信息.必要时,需要将查询字符串追加到URL末尾.有的时候为了根据URL中查询字符串的不同渲染不同的页面也需要读取URL中的查询字符串.如何避免在URL写入查询字符串时报出格式错误 及 如何更快捷读出URL中查询字符串就是这篇博客要解决的问题. https://www.baidu.com/baidu?wd=%C6%E2%C7%E0%F1%C6+csdn&tn=monline_dg 在这个URL中 ? 后的字符串

python基础一整型、bool、字符串

1整型.bool.字符串 1.整型 --数字(int) ? 用于比较运算的 ? 32位 -2 ** 31 ~ 2 ** 31 -1 ? 64位 -2 ** 63 ~ 2 ** 63 -1 ? 基础运算符:+ - * / // ** % python2 整型 int -- log(长整型) / 获取的是整数 python3 整型 int -- / 获取的是浮点数(小数) 2.进制 ? 二进制 八进制 十进制 十六进制 ? 十进制与二进制转换: ? 十进制->二进制:除二整除取倒余法 ? 二进制->

Java把长整型时间转成字符串日期

数据库里存放的是timestamp格式,前端取得后是这种:1436255550710长整型时间截转换成"2015-07-07"这种格式呢? import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class Test { /** * Java把长整型时间转成字符串日期 * @param args * @throws IOException */ public

C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?

C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 5