我在数据库中有一个名为land的表,其中包含字段landType,landType是一个字符串数组(string[]),我需要编写一个查询,通过输入例如“N”,如果数组的任何元素包含字母“N”,则返回行,尝试了几个小时,但没有运气
prisma.$queryRaw SELECT * FROM "Land" where "constructionType" = "N"
;
我在数据库中有一个名为land的表,其中包含字段landType,landType是一个字符串数组(string[]),我需要编写一个查询,通过输入例如“N”,如果数组的任何元素包含字母“N”,则返回行,尝试了几个小时,但没有运气
prisma.$queryRaw SELECT * FROM "Land" where "constructionType" = "N"
;
2条答案
按热度按时间wlzqhblo1#
您尚未指明是否希望比较区分大小写。假设区分大小写,则:
字符串
array_to_string
从这里Array functions将数组元素转换为字符串,其中每个元素由,
分隔。然后strpos
从这里String functions搜索并返回子字符串的第一个索引("N"
)如果未找到子字符串,则返回的索引将为0。因此,查询将在> 0
上进行筛选,这表明至少有一个数组中的"N"
。pcrecxhr2#
可能只是将数组强制转换为
text
:字符串
或者
~*
不区分大小写。不会很快,这只对大表有影响。