mysql中instr=0为什么会返回所有的结果

mysql中instr=0为什么会返回所有的结果,第1张

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全都支持该函数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7129627.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存