在mysql查询中的字符串前面提取第一个数字

时间:2013-02-05 22:30:12

标签: mysql substring rights

我有一个像这样的图像文件名:

5110b99ba85c72_t.jpg

我想提取字符串_t_m之前的第一个数字或以_开头的内容。在这种情况下,它是数字2。

我发现有两种方法可以正常使用,但不确定哪种方法更好,两种方法的优点或缺点......

专家们的想法是什么?

方法1

SELECT SUBSTRING(SUBSTRING_INDEX(thumb_filename, '_', 1), -1) FROM image

方法2

SELECT RIGHT(SUBSTRING_INDEX(thumb_filename, '_', 1), 1) FROM image

1 个答案:

答案 0 :(得分:0)

我很确定两者之间在性能方面不会有太大差异。

那就是说,我可能会使用RIGHT()函数,因为它更清楚你究竟要做什么。

如果您担心性能,我会添加一个包含该值的列,并在文件更改时保持最新状态。生成/更新行时获取数字的速度要快得多,然后不必在查询中执行SUBSTRING函数。