產品表包含標簽列:
create table product(
product char(20) primary key,
tag1 char(100),
tag2 char(100) )
標簽列包含用分號分隔的標簽,例如
AB;AC;AD
RXX;AC;XAD
RP12;X455;R444;AXD
如何查找 tag1 和 tag2 列包含至少一個相同標簽的所有行?
例如行
tag1 tag2
AB;AC;AD RXX;ZAC;XAD;AC
應該是結果,因為兩列都包含 AC
排
tag1 tag2
AB;XAC;AD RXX;ZAC;XAD;AC
不應出現在結果中,因為所有標簽都不同。
使用 PostgreSQL 13.2
uj5u.com熱心網友回復:
您可以使用&& 運算子來檢查列中是否存在公共元素。為此,您必須首先使用string_to_array
SELECT * FROM my_table WHERE (string_to_array(tag1,';')::text[]) && (string_to_array(tag2,';')::text[])
DBfiddle中的演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467475.html
標籤:sql PostgreSQL 选择 路口 交集
上一篇:liquibasesql遷移問題
