一個表列是一個包含多個子字串的字串,由分隔符分隔符管道字符(|),如“aa-a|aa-aa|aa|aa”,分隔符不能是列的前導字符和結束字符細繩。并且匹配檢查在“where”中,當匹配時選擇該行。實際上它是一個搜索,傳入諸如“aa-a”之類的子字串并搜索所有具有“aa-a”作為完整子字串的行,“aa-aa”不應該是匹配的。當只有一個子字串且沒有分隔符時,還需要考慮另一種情況。像這樣的東西:
Select * from tb where REGEX_FUNC(tb.col_1, "pattern")>0
其中“模式”可能類似于“^aa-a$” (1) REGEX_FUNC 應該是什么,需要創建我自己的嗎?(2)“模式”應該是什么?
uj5u.com熱心網友回復:
不需要正則運算式匹配。
您可以將分隔值轉換為陣列,然后檢查陣列是否與您的比較值匹配:
where 'aa-a' = any(string_to_array(col1, '|'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/432613.html
標籤:细绳 PostgreSQL
下一篇:使用JOIN從表中映射值
