

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 模式比對條件
<a name="pattern-matching-conditions"></a>

**Topics**
+ [LIKE](r_patternmatching_condition_like.md)
+ [SIMILAR TO](pattern-matching-conditions-similar-to.md)
+ [POSIX 運算子](pattern-matching-conditions-posix.md)

模式比對運算子會依據條件表達式中所指定的模式，來搜尋字串，並根據是否找到符合的結果，傳回 true 或 false。Amazon Redshift 使用三種方法進行模式比對：
+ LIKE 表達式

  LIKE 運算子會利用模式 (此模式使用萬用字元 `%` (百分比) 和 `_` (底線)) 來比較字串表達式 (例如資料欄的名稱)。LIKE 模式比對的範圍一律涵蓋整個字串。LIKE 會進行區分大小寫的比對，ILIKE 則會進行不區分大小寫的比對。
+ SIMILAR TO 規則表達式

  SIMILAR TO 運算子會利用 SQL 標準規則表達式的模式，來比對字串表達式，此模式包含一組模式比對中繼字元，其中包括 LIKE 運算子所支援的兩個字元。SIMILAR TO 會比對整個字串，並進行區分大小寫的比對。
+ POSIX 樣式規則表達式 

  POSIX 規則表達式提供了更強大的方法，來進行 LIKE 和 SIMILAR TO 運算子以外的模式比對。POSIX 規則表達式可比對字串的任何部分，並進行區分大小寫的比對。

使用 SIMILAR TO 或 POSIX 運算子進行的規則表達式比對，其運算成本非常昂貴。我們建議盡可能使用 LIKE，尤其是在處理極為龐大的列數時。例如，下列的查詢在功能上相同，但相較於使用規則運算式的查詢，使用 LIKE 的查詢，其執行速度快上好幾倍：

```
select count(*) from event where eventname SIMILAR TO '%(Ring|Die)%'; 
select count(*) from event where eventname LIKE '%Ring%' OR eventname LIKE '%Die%';
```