欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-09 15:41:31
在sql语句中经常遇到处理前置和后置数据的问题 1、首先使用convert转化函数对预处理的数据进行转化,CONVERT()函数可以将制定的数据类型转换为另一种数据类型 MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下: 就是CAST ......

在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执行条件 )

 

点点滴滴积累!