我有一个带varchar字段的表,其中包含一个带变量lenght的描述。我想读一下右边的第4个字母。
例如,如果表格包含:
|col1 |
+-----+
|20161512_NL_Luxus_1_DE |
|20161512_NL_Premium_2_DE |
|20161512_NL_SDT_4_DE|
我想要一个将返回的查询:
|result|
+------+
|1 |
|2 |
|4 |
提前致谢!
答案 0 :(得分:1)
SUBSTRING_INDEX
似乎很适合你想要完成的任务:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(col1, '_', -2), '_', 1);
有关使用情况的详情,请参阅MySQL Docs。
基本上,对SUBSTRING_INDEX
的内部调用是找到倒数第二个_
字符,并将所有内容返回到右。 外部 SUBSTRING_INDEX
调用然后从此结果中找到第一个_
并返回所有内容直到该点。