Ballly
@Ballly

Как устранить ошибку «operator does not exist: integer = integer[]»?

Решил сделать функцию, подсчитывающую кол-во устройств в таблице device по переданному в функцию массиву идентификаторов, но при создании функции выходит ошибка:

ERROR:  operator does not exist: integer = integer[]
LINE 3:  WHERE device.id IN (ids)

HINT:  No operator matches the given name and argument types. You might need to add explicit type casts.

Запрос:

CREATE OR REPLACE FUNCTION get_count(VARIADIC ids integer[]) RETURNS int AS $$
	SELECT COUNT(*) FROM device 
	WHERE device.id IN (ids)
$$ LANGUAGE SQL
  • Вопрос задан
  • 1062 просмотра
Решения вопроса 1
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
ANY вместо IN?
CREATE OR REPLACE FUNCTION get_count(VARIADIC ids integer[]) RETURNS int AS $$
	SELECT COUNT(*) FROM device 
	-- WHERE device.id IN (ids)
	WHERE device.id = ANY (ids)
$$ LANGUAGE SQL
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы