
instr() > 0 返回的是模糊查询匹配到的数据 类似于like
instr() = 0 返回的是没有模糊匹配到的数据 可以理解为>0的补集
instr() < 0 直接返回null 空数据
一般情况下,进行模糊查询 我们用第一种写法:
SELECT * FROM table_name WHERE INSTR(column_name,'模糊匹配的字符串')>0
SUBSTRING(str FROMpos)返回字符串str的位置pos起的一个子串
mysql>selectSUBSTRING('Quadratically',5)
->'ratically'
mysql>select SUBSTRING('foobarbar' FROM4)
->'barbar'
INSTR(str,substr)
返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。
mysql>select INSTR('foobarbar', 'bar')
->4
mysql>select INSTR('xbar', 'foobar')
->0
一、ANSI字符函数字符函数用于在SQL里以不同于存储方式的格式来表示字符串。
串接就是把两个单独的字符串组合为一个。
子串的概念就是从字符串里提取一部分。
TRANSLATE函数用于逐字符地把一个字符串变换为另一个,它通常有3个参数:要被转换的字符串、要转换的字符系列、代入字符的列表。
二、常用字符函数
1、串接函数
MySQL里的语法:CONCAT(column_name, [‘ ’,] column_name [column_name])
ORACLE里的语法:column_name || [‘ ’ ||] column_name [column_name]
SQL Server里的语法:column_name + [‘ ’ +] column_name [column_name]
MySQL和Oracle中都有串接函数,区别在于,Oracle中的串接函数只能用于两个字符串,而MySQL中的串接函数可以连接多个字符串。
2、TRANSLATE函数
TRANSLATE函数搜索字符串里的字符并查找特定的字符,标记找到的位置,然后用替代字符串里对应的字符替换它。
语法:TRANSLATE(CHARACTER set, value1, value2)
注:MySQL和Oracle都支持使用TRANSLATE函数,但是SQL Server不支持。
3、REPLACE函数
REPLACE函数用于把某个字符或字符串替换为指定的一个字符(或多个字符),其使用类似于TRANSLATE函数,只是它是把一个字符或字符串替换到另一个字符串里。
语法:REPLACE(‘value’,’value’,[null] ‘value’)
注:MySQL、Oracle、SQL Server全都支持该函数的ANSI语法结构。
4、UPPER
语法:UPPER(CHARACTER string)
注:MySQL、Oracle、SQL Server全都支持该函数,MySQL还有一个UCASE函数可以实现同样的 *** 作。
5、LOWER
语法:LOWER(CHARACTER string)
注:MySQL、Oracle、SQL Server全都支持该函数,与UPPER类似,MySQL还有一个LCASE函数可以实现同样的 *** 作。
6、SUBSTR
MySQL(5.5.33)里的语法:
SUBSTR(column_name starting position, length)
SUBSTRING(column_name, starting position, length)
Oracle里的语法:SUBSTR(column_name starting position, length)
SQL Server里的语法:SUBSTRING(column_name, starting position, length)
7、INSTR
INSTR函数用于在字符串里寻找指定的字符集,返回其所在的位置。
语法:INSTR(column_name, ‘set’, [start position [,occurrence]]
注:INSTR在MySQL和Oracle中有效,在SQL Server中,则需要使用CHARINDEX函数。
8、LTRIM
LTRIM用于从左剪除字符串里的字符。
语法:LTRIM(CHARACTER STRING [,’set’)
注:MySQL、Oracle、SQL Sserver全都支持该函数。
9、RTRIM
类似于LTRIM,RTRIM也用于剪除字符,当它是剪除字符串的右侧。
语法:RTRIM(CHARACTER STRING [,’set’])
注:MySQL、Oracle、SQL Sserver全都支持该函数。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)