MySQL中的MID函数和SUBSTR函数都用于截取字符串的子串,但它们有一些区别。
MID函数的语法是:MID(str, start[, length])。其中,str是要截取的字符串,start是起始位置,length是要截取的长度。如果省略length,则会截取从起始位置开始到字符串末尾的所有字符。例如,MID(‘hello’, 2, 3)会返回’ell’。 SUBSTR函数的语法是:SUBSTR(str, start[, length])。与MID函数类似,str是要截取的字符串,start是起始位置,length是要截取的长度。如果省略length,则会截取从起始位置开始到字符串末尾的所有字符。例如,SUBSTR(‘hello’, 2, 3)也会返回’ell’。
MID函数的第一个参数必须是一个字符串,如果不是,则会返回NULL。而SUBSTR函数可以接受任何类型的数据,并将其强制转换为字符串进行截取。
MID函数的起始位置是从1开始的,而SUBSTR函数的起始位置是从0开始的。例如,MID(‘hello’, 2, 3)会返回’ell’,而SUBSTR(‘hello’, 1, 3)会返回’hel’。
当截取的长度超出字符串的长度时,MID函数会返回从起始位置到字符串末尾的所有字符,而SUBSTR函数会返回空字符串。例如,MID(‘hello’, 3, 5)会返回’lo’,而SUBSTR(‘hello’, 3, 5)会返回”。
综上所述,MID函数和SUBSTR函数的主要区别在于起始位置的不同以及对数据类型的处理方式不同。在实际使用中,需要根据具体情况选择合适的函数。




