1、先来看一下表结构和数据:
2、sql语句:取id和id2的前两位不相等的行,以及运行结果
SELECT * FROM test111 WHERE CAST(SUBSTR(id,1,2) AS UNSIGNED) <> CAST(SUBSTR(id2,1,2) AS UNSIGNED) ;
3、函数分析:
SUBSTR函数
substr( string, start_position, [ length ] ) substr('目标字符串',开始位置,长度)
如:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'select substr('Thisisatest', -4, 2) value from dual
注意:这里的开始位置是从1开始的,开始位置可以为负数,但不能为0。
CAST函数
cast跟convert的用法如下
用CAST函数或者CONVERT
CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)
CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
这个类型 可以是以下值其中的 一个:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
注意:使用的int这个类型是错误的,需要使用SIGNED [INTEGER] 或者是UNSIGNED [INTEGER]都是可以的