Postgresql Select rows where column = array

后端 未结 4 1900
闹比i
闹比i 2020-12-12 17:37

This is a summary of what I am trying to do:

$array[0] = 1;
$array[1] = 2;

$sql = \"SELECT * FROM table WHERE some_id = $array\"

Obviously

4条回答
  •  半阙折子戏
    2020-12-12 18:21

    For dynamic SQL use:

    'IN(' ||array_to_string(some_array, ',')||')'

    Example

    DO LANGUAGE PLPGSQL $$
    
    DECLARE
        some_array bigint[];
        sql_statement text;
    
    BEGIN
    
        SELECT array[1, 2] INTO some_array;
        RAISE NOTICE '%', some_array;
    
        sql_statement := 'SELECT * FROM my_table WHERE my_column IN(' ||array_to_string(some_array, ',')||')';
        RAISE NOTICE '%', sql_statement;
    
    END;
    
    $$;
    

    Result: NOTICE: {1,2} NOTICE: SELECT * FROM my_table WHERE my_column IN(1,2)

提交回复
热议问题