mysql只选择特定的字符串

时间:2017-03-03 04:36:16

标签: mysql

我在数据库中有一个列,并且有这样的值

course_repeatfkfjkjfjkfer_10_topics_0_presentation_link
course_repeatfkfjfkfkfklfflkflkfs_1_presentation_link
course_repeatfkfjfkfkfklfflkflkfs_2_presentation_link
coursek_epeatfkfjfkfkfklfflkflkfs_10_presentation_link
course_hdhdhhdhdjhdrepeatfkfjfkfkfklfflkflkfs_21_presentation_link

等等。

我需要在 _presentation_link 之前选择0,1,2,10,21,但我在mysql中也需要这个

我在mysql中使用了substr,但这不起作用。任何的想法?

由于

2 个答案:

答案 0 :(得分:1)

一种选择是使用SUBSTRING_INDEX()REPLACE()的组合:

SELECT SUBSTRING_INDEX(REPLACE(col, '_presentation_link', ''), '_', -1)
FROM yourTable

course_repeatfkfjkjfjkfer_10_topics_0_presentation_link为例,在替换之后,这将成为:

course_repeatfkfjkjfjkfer_10_topics_0

SUBSTRING_INDEX()的调用会在最后一个下划线之后抓取显示的所有内容,这是您要捕获的数字。

在这里演示:

SQLFiddle

答案 1 :(得分:0)

您可以像这样使用substring_index两次:

select substring_index(substring_index(col, '_', -3), '_', 1)
from t

Demo