通过MYSQL读出右边的最后X个字母

时间:2017-01-19 15:05:55

标签: mysql

我有一个带varchar字段的表,其中包含一个带变量lenght的描述。我想读一下右边的第4个字母。

例如,如果表格包含:

|col1 |
+-----+
|20161512_NL_Luxus_1_DE |
|20161512_NL_Premium_2_DE |
|20161512_NL_SDT_4_DE|

我想要一个将返回的查询:

|result|
+------+
|1     |
|2     |
|4     |

提前致谢!

1 个答案:

答案 0 :(得分:1)

SUBSTRING_INDEX似乎很适合你想要完成的任务:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(col1, '_', -2), '_', 1);

有关使用情况的详情,请参阅MySQL Docs

基本上,对SUBSTRING_INDEX内部调用是找到倒数第二个_字符,并将所有内容返回到外部 SUBSTRING_INDEX调用然后从此结果中找到第一个_并返回所有内容直到该点。