当前位置: 首页 > news >正文

网站建设谈单流程熊猫关键词工具

网站建设谈单流程,熊猫关键词工具,重庆专业网站推广公司,企业展厅建议做什么最近因为项目的需要,报表中需要对数据进行MD5加密,结果报表系统得出来的sql语句,字符串前都自动带了N,执行时,发现得到的结果跟在数据库中执行的sql(字符串不带N)得的值不一样,最后自…

最近因为项目的需要,报表中需要对数据进行MD5加密,结果报表系统得出来的sql语句,字符串前都自动带了N,执行时,发现得到的结果跟在数据库中执行的sql(字符串不带N)得的值不一样,最后自己测试一下,发现sql server执行md5加密的时候,字符串前带N和不带N的结果确实是不一样的,如下图
在这里插入图片描述

第2个值是自己想要的值,为什么呢?

因为,表创建的时候,字段用的字符类型时varchar,而字符串加上N后,数据类型默认为是 nvarchar了,即加N后代表这个字符串是一个nvarchar类型,在字符串前面加N可以把字符串转换为unicode编码,每个字符串采用双字节的形式存储。所以字符串类型不一致,导致加密得到的结果也不一致。

一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar,varchar是实际内容的长度,而nvarchar占用的全部的存储,所以计算出的结果不同

 alter table table_name alter column name nvarchar(50);

数据库字段改成 nvarchar(50) 之后计算结果就一致了(但是我这里不使用这种方式)

sql server中的varchar和nvarchar有什么区别?

答:
varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。

如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

在字符串前面加上 N 代表存入数据库时以 Unicode 格式存储。
N’string’ 表示string是个Unicode字符串.

Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,‘Michél’ 是字符串常量而 N’Michél’ 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。

我最终的解决方案是,使用convert()函数,把字符串前加N的转为varchar()字符类型,如下图:
在这里插入图片描述

sql语句:

select upper(substring(sys.fn_sqlvarbasetostr(hashbytes('MD5',
(select N'00000000000000000011'  + char(13) + char(10) +
N'0001A110000000007LBY' + char(13) + char(10) +
N'2022-12' + char(13) + char(10) +
N'750'))),3,32)) as aunionselect upper(substring(sys.fn_sqlvarbasetostr(hashbytes('MD5',
(select '00000000000000000011'  + char(13) + char(10) +
'0001A110000000007LBY' + char(13) + char(10) +
'2022-12' + char(13) + char(10) +
'750'))),3,32)) as a
union all
select upper(substring(sys.fn_sqlvarbasetostr(hashbytes(N'MD5',(select convert(varchar(20), N'00000000000000000011') + char(13) + char(10) +convert(varchar(20), N'0001A110000000007LBY') + char(13) + char(10) +convert(varchar(20), N'2022-12') + char(13) + char(10) + convert(varchar(20), N'750')))), 3, 32)) as a
http://www.yidumall.com/news/94774.html

相关文章:

  • 扎区门户网站建设企业网站seo多少钱
  • 大学生网页设计心得体会网站优化哪家好
  • 灰大设计导航网谷歌seo外包公司哪家好
  • 西安做网站公司报价网站域名查询网
  • 荣昌网站建设线上平台推广方式
  • 小程序接广告可以赚多少钱seo关键词优化推广价格
  • 惠州市建设局网站办事指南seo搜索引擎优化主要做什么
  • 青海电商网站建设公司网站推广计划书范文
  • 上海正规做网站公司有哪些网站性能优化方法
  • 真实免费建站平台网络销售好做吗
  • wordpress esc attr小程序seo推广技巧
  • 怎样找到免费的黄页网站重庆seo俱乐部
  • 绵阳网站建设哪家好网站推广计划
  • 手机网站建站用哪个软件好app 推广
  • 如何做网站窗口营销的概念是什么
  • WordPress取消签名如何获取网站的seo
  • 做catia数据的网站线上培训课程
  • 两个WordPress文章同步更新廊坊网络推广优化公司
  • web网站开发自学指南网站域名备案查询
  • 网站建设兆金手指花总品牌传播推广方案
  • 网站的修改怎么找精准客户资源
  • 安徽省建设工程造价管理网站今日最新消息新闻报道
  • 高端网站建设高端网站建设专家百度推广登录首页
  • 武汉网站营销2021近期时事新闻热点事件
  • 重庆环保公司网站建设怎么创建自己的网站
  • 网站建设及管理使用情况汇报网页设计排版布局技巧
  • 找做网站公司经验以图搜图百度识图
  • 网站建设 开发网站代码百度应用商店下载安装
  • 做后期哪个网站素材好盘多多百度网盘搜索引擎
  • 做智能网站成都网站制作费用