0

必要な条件を備えたスクリプトを作成しました。そして、それは適切に機能します。しかし、このスクリプトを多くの行に適用する必要があります。id がどこにあるかだけではありません15

UPDATE my_table SET my_field =
  (SELECT 
     CASE WHEN position('a' in my_field) = 0 THEN my_field
          WHEN position('a' in my_field) = 1 THEN substring(my_field from 1 for 5)
          WHEN position('a' in my_field) > 1 THEN substring(my_field from 2 for 5)
     END 
   FROM my_table WHERE id = 15)
WHERE id = 15

特定の条件が実行される行にこのスクリプトを適用したいと思います。たとえば、私は書きたいと思いますWHERE my_field LIKE '%ab%'しかし問題は、 subselect があることです。したがって、別のスクリプトを適用して必要なすべての ID を取得し、このスクリプトを手動で適用して、別のスクリプトから個々の ID を置き換えることができます。しかし、単一のクエリで自動的に適用したいと考えています。

4

1 に答える 1

1

思ったより簡単です:)

これを試して:

UPDATE my_table
SET my_field =
    CASE
          WHEN position('a' in my_field) = 0 THEN my_field
          WHEN position('a' in my_field) = 1 THEN substring(my_field from 1 for 5)
          WHEN position('a' in my_field) > 1 THEN substring(my_field from 2 for 5)
    END
于 2013-08-13T13:18:56.090 に答える