我有一个包含数组列的表,其中包含不同情况下的单词。我可以选择所有带有所需标签的行:
SELECT * FROM table WHERE 'tag' = ANY(tags::TEXT[]);
但是如何考虑数组中的单词也可以是大写的?
更新
我怎样才能从数组列中获取所有唯一值:
SELECT DISTINCT LOWER(unnest)
FROM (SELECT unnest(tags) FROM table) AS all_tags;
也许会有所帮助
答案 0 :(得分:2)
select *
from my_table
where 'tag' ilike any(tags)
根据活动的语言环境,可以使用关键字ILIKE而不是LIKE来使匹配不区分大小写。
答案 1 :(得分:0)
此查询找到所有
## read in table
text = "ID | Col1 | Col2 | Col3 | Col4 | Col5 | Open1 | Open2
1 | be rich |buy home | pay edn | Open1 | Not worry | feel secure | care for parents
2 | buy home | be rich | Open1 | Open2 | pay medical expenses | give to causes | leave legacy"
df <- read.delim(text = text, sep = "|", stringsAsFactors = FALSE)
df <- sapply(df, trimws)
答案 2 :(得分:-1)
您需要做出选择并选择将标记字段设置为大写,并且数组的内容也处于相同状态。 为此,您可以保存标记,或将实际内容更新为大写或小写,并在此字段上定义索引,然后将数组内容设置为相同的状态。