我正在使用FIND_IN_SET并收到以下错误
SQL错误[42883]:错误:函数find_in_set(未知,字符不同[])不存在
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
我使用了以下示例
where FIND_IN_SET ('US', country_codes) and
where FIND_IN_SET ('"US"', country_codes)
表如下
COUNTRY_CODES
{US, CA}
{US, CA, UT}
{FR, BG, ET}
and want to use for group by country_codes where as it should consider COUNTRY_CODES
{US, CA}
{US, CA, UT} as same country as it is coming in the query
where as group by consider it as different country
答案 0 :(得分:2)
此错误输出严重类似于您正在运行Postgres,不是 MySQL。
如果canSelect
列实际上是Postgres数组,则只需使用以下内容:
@Input() canSelect?: boolean = false;
如果您确实将CSV数据存储在字符串列中,那么我建议改用以下逻辑:
<div [attr.matRipple]="canSelect ? '' : null"> select </div>
要查看上述逻辑的作用,请考虑您要匹配以下国家/地区代码的CSV列表:
country_codes
变成
WHERE country_codes @> ARRAY['US']::varchar[]
然后,很明显,该CSV字符串中包含WHERE ',' || country_codes || ',' LIKE '%,US,%'
。请注意,应避免将CSV数据直接存储在SQL表中。