0

私は次のような画像ファイル名を持っています:

5110b99ba85c72_t.jpg

文字列の直前の最初の数字または で始まる何かを抽出_t_mたい_。この場合は2番です。

問題なく機能する2つのソリューションを見つけましたが、どちらが良いのか、両方の方法の長所または短所はわかりません...

専門家はどう思いますか?

方法 1

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

方法 2

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

1 に答える 1

0

両者の性能に大きな違いはないと確信しています。

そうは言っても、正確に何をしようとしているのかが少し明確になるので、おそらく RIGHT() 関数を使用するでしょう。

ただし、パフォーマンスが心配な場合は、その値の列を追加して、ファイルが変更されたときに最新の状態に保ちます。行が生成/更新されたときに数値を一度取得すると、クエリで SUBSTRING 関数を実行する必要がなくなります。

于 2013-02-05T23:28:50.617 に答える