0

テーブル: フィールド 1、フィールド 2

オフセットと長さを指定すると、結果は次のようになります。

select substr(concat(field1,field2),offset,len) from table

field1 と field2 は大きな varchar であり、このクエリはボトルネックであるため、2 つの大きなフィールドを継続的に連結したくなく、次の行に沿って何かを実行したいと考えています。

select case when (offset+len) < length(field1) then substr(field1,offset,len) else....

3 つの異なる状況があります: 1) field1 の substr、2) field2 の substr 3) substr(field2) と連結された substr(field1)

誰もこの頭の体操の解決策を持っていますか? ありがとう!

4

1 に答える 1

0

MySQL にはIF、クエリを CASE 構造体よりも明確にする機能があります。

いくら書いても高いです。別の列を作成して (冗長化してください!)、正しい値をそこに保存してみませんか? 最近では冗長性は問題ではなく、あらゆる種類の連結、ケース、または if よりもはるかに高速です。

(offset静的でない場合、これは解決策ではありません。静的ではなくてoffset解決策です。)len

于 2011-04-16T22:28:22.710 に答える