MySQL中mid和substring有什么区别?

4

我刚才看到 MID() 和 SUBSTRING() 函数返回相同的结果。我想知道它们之间有什么区别?这两个函数的使用方法是否相同,只是别名不同?

SELECT MID('mysample',2,3);

SELECT SUBSTRING('mysample',2,3); 

returns : ysa


2
MID(str,pos,len) 是 SUBSTRING(str,pos,len) 的同义词。 - Martin Schneider
2个回答

5
根据MySQL文档所述:

MID(str,pos,len)SUBSTRING(str,pos,len)的同义词。

文档还指出,MID()需要3个参数,而SUBSTRING()更加灵活。 len参数是可选的。当它不存在时,函数将返回从pos开始直到字符串结尾的子字符串。
SUBSTRING(str, pos, len)
SUBSTRING(str, pos)

SUBSTRING() 还允许使用更详细的语法(从标准 SQL 继承而来):

SUBSTRING(str FROM pos FOR len)
SUBSTRING(str FROM pos)

更新:

我刚刚在几个不同版本的MySQL上进行了一些测试,结果显示在当前版本的MySQL中,MID()仅仅是SUBSTRING()的同义词,并且还接受SUBSTRING()的所有语法变体。


在MySQL中,SUBSTR也是SUBSTRING的同义词。 - Alexander Behling

5

MID()是MySQL中SUBSTRING()的同义词。


因此,没有区别。 - shalini
不正确,MID仅是Substring(str, pos, len)的同义词。 - GuyT
基本的区别在于它们如何索引字符串字符......就是这样。 - shalini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接