首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL的CHAR、VARCHAR、TEXT等字符串字段等值比较(=),会忽略掉尾部的空格,导致有空格也能匹配上的坑

但我们查询却遇到一个诡异的现象: SELECT * FROM user_info WHERE user_name = 'lingyejun'; #无空格 SELECT * FROM user_info...(“=”)会忽略掉尾部的空格。...而且这也符合SQL标准,无需设置也无法改变(参考:https://stackoverflow.com/questions/10495692/mysql-comparison-operator-spaces...) 三、想要精确查询的解决方案 3.1 like like不会忽略尾部的空格。...四、结论 MySQL的CHAR、VARCHAR、TEXT等字符串字段等值比较("="),基于PAD SPACE校对规则,会忽略掉尾部的空格; 存储,不会自动截断尾部的空格,会按原值存储; 如果想要精确查询就不能用等值查询

18210
您找到你想要的搜索结果了吗?
是的
没有找到

SqlServer 关于 datetime 的更新引发的思考

今天测试更新 SqlServer 表的 datetime 字段,突然发现并没有更新成功,同时也没有报错,感觉十分诧异,因此仔细排查了一下,终于发现是和字段本身的精度有关。...原因 这个问题我排查了很久,最终关于 datetime 字段定义 的网站上,关于字段描述的表中,有这么一行: Accuracy Rounded to increments of....000, .003, or .007 seconds 意思就是说, datetime 这个字段的 精度 ,四舍五入后会变为 .000, .003, or .007 。...解决方法 当你对于精度要求不高的话,比如只需要精确到级别,那么这个字段的使用完全是没有问题的。 但如果你一定需要精确到毫秒呢?...那么可以使用 datetime2 类型,它的精度可以精确到 100 。 总结 对于服务端开发人员,数据库几乎是一个无法避免的中间件,虽然我们并非专业的 DBA,但多了解一些总是好事。

68830

SQL数据库数据类型_数据表的常见数据类型有哪些

精确数值型 精确数值型包括decimal 和 numeric两类,这两种数据类 型SQL Server中,功能上是完全等价的。...当n25~53之间,精度为15位,长度为8字节,数值范围为- 1.79E+308~1.79E+308。 4....输入字符串,需将串中的符号用单引号或双引号括起来,如’def’、“Def<Ghi”。 ●char[(n)] 固定长度字符数据类型,其中n定义字符型数据的长度,n1~8000之间,默认值为1。...若输入字符串长度小于n,则系统自动它的后面添加空格以达到长度n。...前4字节用于存储基于1900年1月1日之前或之后的天数,正数表示日期1900年1月1日之后,负数则表示日期1900年1月1日之前。后4个字节用于存储距12:00(24小制)的毫秒数。

1.7K10

EntityFramework 外键值映射

如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这个操作一个...到数据库的,所以代码命名尽量规范些,EF 是比较“智能”的。...使用实体框架后,主要就是利用LINQ进行一些集合的操作,这些LINQ的操作虽然有点难度,不过学习清楚了,处理起来也是比较方便的。...由于DateTime的默认值为"0001-01-01",所以entity framework进行数据库操作的时候,传入数据的时会自动将原本是datetime类型的数据字段转换为datetime2类型...实体框架界面层的查询中,我们也不在使用部分SQL的条件做法了,采用更加安全的基于DTO的LINQ表达式进行封装,最后传递给后台的也就是一个LINQ对象(非传统方式的实体LINQ,那样分布式处理中会出错

4.1K50

【T-SQL基础】01.单表查询-几道sql查询题

概述: 本系列【T-SQL基础】主要是针对T-SQL基础的总结。 本篇主要总结了常见的对单表查询的SQL查询题目。...首先我们必须了解SQL查询的各字句逻辑上按以下顺序进行处理: 1.FROM 2.WHERE 3.Group BY 4.HAVING 5.SELECT 6.ORDER BY 在做下面的题目之前,我们可以先把环境准备好...计算返回值不使用 startdate 或 endate 的时区偏移量部分。...由于 smalldatetime 仅精确到分钟,因此将 smalldatetime 值用作 startdate 或 enddate ,返回值中的和毫秒将始终设置为 0。...版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且文章页面明显位置给出原文链接。 特此声明:所有评论和私信都会在第一间回复。

1.9K90

Gorm 数据库表迁移与表模型定义

这样您就可以让一个字段的权限是只读、只写、只创建、只更新或者被忽略 注意: 使用 GORM Migrator 创建表,不会创建被忽略的字段 type User struct { Name string...struct Name string `gorm:"-:migration"` // ignore this field when migrate with struct } 5.2 创建/更新时间追踪(...时间戳,而不是 time,您只需简单地将 time.Time 修改为 int 即可 type User struct { CreatedAt time.Time // 创建,如果该字段值为零值...,则使用当前时间填充 UpdatedAt int // 创建该字段值为零值或者更新,使用当前时间戳秒数填充 Updated int64 `gorm:"autoUpdateTime...对于'int'字段,它将跟踪unix,使用值'nano/'milli跟踪unix nano/milli,如: autoCreateTime:nano autoUpdateTime 创建/更新跟踪当前时间

23910

MySQL内置数据库performance_schema详解(一)

END_EVENT_ID:语句执行结束的事件 ID。 EVENT_NAME:语句的事件名称,例如 SQL SELECT、SQL UPDATE 等。 DIGEST:语句的摘要。...END_EVENT_ID:语句执行结束的事件 ID。 EVENT_NAME:语句的事件名称,例如 SQL SELECT、SQL UPDATE 等。 DIGEST:语句的摘要。...END_EVENT_ID:语句执行结束的事件 ID。 EVENT_NAME:语句的事件名称,例如 SQL SELECT、SQL UPDATE 等。 DIGEST:语句的摘要。...SUM_TIMER_WAIT:特定事件下由该账户执行语句的总等待时间()。 MIN_TIMER_WAIT:特定事件下由该账户执行语句的最小等待时间()。...MIN_TIMER_WAIT:特定事件下执行语句的最小等待时间()。 AVG_TIMER_WAIT:特定事件下执行语句的平均等待时间()。

41030

Gorm框架学习--入门

Gorm框架学习--入门 引言 快速入门 模型定义 约定 gorm.Model 高级选项 字段级权限控制 创建/更新时间追踪(、毫秒、、Time) 嵌入结构体 字段标签 关联标签 连接到数据库...这样您就可以让一个字段的权限是只读、只写、只创建、只更新或者被忽略 注意: 使用 GORM Migrator 创建表,不会创建被忽略的字段 type User struct { Name string...Name string `gorm:"-:migration"` // ignore this field when migrate with struct } ---- 创建/更新时间追踪(...要使用不同名称的字段,您可以配置 autoCreateTime、autoUpdateTime 标签 如果您想要保存 UNIX(毫/时间戳,而不是 time,您只需简单地将 time.Time 修改为...创建该字段值为零值或者更新,使用当前时间戳秒数填充 Updated int64 `gorm:"autoUpdateTime:nano"` // 使用时间戳填秒数充更新时间 Updated

2K10

Table-values parameter(TVP)系列之一:T-SQL中创建和使用TVP

二.简介   表值参数出现以前,当需要发送多行数据到SQL Server,我们只能使用一些替代方案来实现:   (1) 使用一连串的独立参数来表示多列和多行数据的值。      ...(1) T-SQL中创建和使用TVP   (2) ADO.NET中利用DataTable对象,将其作为参数传给存贮过程   (3) ADO.NET中利用Collection对象...,将其作为参数传给存贮过程 四.第一部分:T-SQL中创建和使用TVP   参看URL: ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_1devconc...可以动态 Transact-SQL 语句内声明表值变量,并且可以将这些变量作为表值参数传递到存储过程和函数。                ...应用比较广泛的是Browse Master的多行数据作为过滤条件使用。                     利用TVP使得一次插入多项或Select多行变得大为简单。

2.9K90

sql server中部分函数功能详解

当 length 为负数,numeric_expression 则按 length 所指定的小数点的左边四舍五入。...ss, s 毫秒 ms 微妙 mcs ns 12. join函数 sql之left join、right join、inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录...ss, s 毫秒 ms 微妙 mcs ns 17. charindex() substring() SQL CHARINDEX 函数返回字符或者字符串另一个字符串中的起始位置 CHARINDEX...标识符可以由双引号分隔,文字必须由单引号分隔 SET ANSI_NULLS,就是说NULL是否可以进行=和比较; 当设置为ON ,表示不可以进行比较,凡是进行比较的,结果都为0 当设置为 OFF...,表示可以进行比较比较的结果就是实际结果 29.

1.5K30

php常用日期时间函数实例小结

我在做项目的时候经常用时间戳来表示数据,这样比较方便,如果保存为日期时间型的数据,显示的时候可能比较省事,但是如果是获取这个日期的某个年份或月份,就比较麻烦了。 <?...,0);//1970-01-01 星期4 00:00:00(默认时区下) echo gmdate("Y-m-d 星期N H:i:s a",0);//1970-01-01 星期4 00:00:00(全部UTC...php echo mktime(19,15,0,7,8,2016);//获取2016年8月7日1915分0的时间戳 ? 2、strtotime():将任何英文文本的日期时间描述解析为时间戳 <?...php echo strtotime("2016-7-8 19:15:0");//获取2016年8月7日1915分0的时间戳 echo strtotime("now");//获取现在得时间戳...php $datetime1 = new DateTime('2016-7-8'); $datetime2 = new DateTime('2016-7-1'); $interval = $datetime2

4.3K31
领券