阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

SQL中前置0和后置0的处理问题

223次阅读
没有评论

共计 755 个字符,预计需要花费 2 分钟才能阅读完成。

在 sql 语句中经常遇到处理前置和后置数据的问题

1、首先使用 convert 转化函数对预处理的数据进行转化,CONVERT() 函数可以将制定的数据类型转换为另一种数据类型

MySQL 的 CAST() 和 CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:

CAST(value as type);
CONVERT(value, type);

就是 CAST(xxx AS 类型), CONVERT(xxx, 类型)。

可以转换的类型是有限制的。这个类型可以是以下值其中的一个:

  • 二进制,同带 binary 前缀的效果 : BINARY   
  • 字符型,可带参数 : CHAR()   
  • 日期 : DATE   
  • 时间: TIME   
  • 日期时间型 : DATETIME   
  • 浮点数 : DECIMAL     
  • 整数 : SIGNED   
  • 无符号整数 : UNSIGNED

2、需要把前置或者后置的数据用一个特定的字符替代,或者用空字符代替然后去除空格,达到实现转换数据的目的。

需要用到的函数:

RTRIM() 函数, 用于去除字符串右边多余的空格,不管有多少个空格,一次性全部清除。

LTRIM() 函数, 用于去除字符串左边多余的空格,不管有多少个空格,一次性全部清除。

例如:数据 10 和 00010 进行匹配判断

解决方法:先把 00010 中所有的 0 转化成 ” “ 空字符,然后再去掉左边的 ” “ 空字符,最后把右边的 ” “ 空字符转化成 0。

replace(ltrim(replace(convert(‘00010′,SIGNED),’0′,’ ‘)),’ ‘,’0’)

SQL 判断条件:

SELECT *
FROM `table`
WHERE IF(`parentID` =1, `plan_id` <10, `plan_id` >500)
LIMIT 0 , 30

说明:WHERE IF(条件, true 执行条件, false 执行条件)

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计755字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中