0

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

5110b99ba85c72_t.jpg

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

我找到了 2 个工作正常的解决方案,但不确定哪个更好,两种方法的优缺点......

专家们怎么看?

方法一

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

方法二

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

1 回答 1

0

我相当确定两者在性能方面不会有太大差异。

也就是说,我可能会使用 RIGHT() 函数,因为它更清楚你到底想要做什么。

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

于 2013-02-05T23:28:50.617 回答