Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果我有两个子字符串_index,哪一个先执行?_Mysql_Database_Substring - Fatal编程技术网

Mysql 如果我有两个子字符串_index,哪一个先执行?

Mysql 如果我有两个子字符串_index,哪一个先执行?,mysql,database,substring,Mysql,Database,Substring,如果我有两个子字符串_index,那么首先执行哪一个子字符串?内部的子字符串索引(mycl,“/”,3),还是外部的 substring_index(substring_index(`mycol`,'/',3),'://',-1) 我想治疗的刺痛示例: https://www.yahoo.com/ http://google.com/en/ 我想得到: www.yahoo.com google.com 1) 首先执行哪个子字符串\u索引?根据第一次执行的内容的输出,构造第二个子字符串索引,

如果我有两个子字符串_index,那么首先执行哪一个子字符串?内部的
子字符串索引(
mycl
,“/”,3)
,还是外部的

substring_index(substring_index(`mycol`,'/',3),'://',-1)
我想治疗的刺痛示例:

https://www.yahoo.com/
http://google.com/en/
我想得到:

www.yahoo.com
google.com
1) 首先执行哪个
子字符串\u索引
?根据第一次执行的内容的输出,构造第二个
子字符串索引
,这一点很重要


2) 我的
substring\u index
语句正确吗

Asu您可以轻松检查

select substring_index(substring_index('https://www.yahoo.com/','/',3),'://',-1);
www.yahoo.com

select substring_index(substring_index('http://google.com/en/','/',3),'://',-1);
谷歌网站


对于每个嵌套函数,始终执行内部函数。。然后再重复下一个外部

Asu,您可以轻松检查

select substring_index(substring_index('https://www.yahoo.com/','/',3),'://',-1);
www.yahoo.com

select substring_index(substring_index('http://google.com/en/','/',3),'://',-1);
谷歌网站


对于每个嵌套函数,始终执行内部函数。。相反,下一个外部

外部
子字符串_index()
无法执行,除非存在要对其进行操作的值
在这种情况下,要操作的值为:

substring_index(`mycol`,'/',3)
因此,首先执行嵌套的
子字符串_index()
,并提供外部
子字符串_index()
操作的值。

这是所有编程语言(包括SQL求值表达式)的方式。
至于第二个问题:是的,该语句是正确的。

外部
子字符串_index()
无法执行,除非存在要对其进行操作的值
在这种情况下,要操作的值为:

substring_index(`mycol`,'/',3)
因此,首先执行嵌套的
子字符串_index()
,并提供外部
子字符串_index()
操作的值。

这是包括SQL在内的所有编程语言计算表达式的方式。
至于第二个问题:是的,该语句是正确的。

作为使用
子字符串索引的替代方法,如果您使用的是MySQL 8+,则可以使用正则表达式替换函数:

SELECT
    REGEXP_REPLACE('http://google.com/en/', 'https?://([^/]+)', '$1') AS url
FROM yourTable;

作为使用
子字符串索引的替代方法,如果您使用的是MySQL 8+,则可以使用正则表达式替换函数:

SELECT
    REGEXP_REPLACE('http://google.com/en/', 'https?://([^/]+)', '$1') AS url
FROM yourTable;

  • 括号中的语句始终具有较高的优先级
  • 内部子字符串索引只修剪结尾的“/”字符。(‘’). 外部子字符串索引修剪“https://”。('www.yahoo.com')。你的陈述很好 您可以找到不同的用法或详细信息

  • 括号中的语句始终具有较高的优先级
  • 内部子字符串索引只修剪结尾的“/”字符。(‘’). 外部子字符串索引修剪“https://”。('www.yahoo.com')。你的陈述很好
    您可以找到不同的用法或详细信息。

    对于每个嵌套函数,始终执行内部函数。。然后依次执行下一个外部函数。对于每个嵌套函数,始终执行内部函数。。然后再把下一个外边的。