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 回答