Soalan:
Bagaimana seseorang boleh memesan dan mengehadkan hasil dengan cekap apabila menggunakan fungsi jadual SQL seperti getStuff? Memesan dan mengehadkan di luar fungsi atau menggunakan plpgsql sedang dipertimbangkan. Adakah terdapat pendekatan yang lebih baik?
Jawapan:
Walaupun penampilan awalnya, fungsi plpgsql ialah pilihan pilihan untuk mengendalikan senario yang lebih kompleks. Prestasi mungkin hanya terjejas apabila fungsi plpgsql bersarang, di mana perancang pertanyaan tidak dapat mengoptimumkan kod sepenuhnya dalam konteks pertanyaan luar.
Fungsi plpgsql dipermudahkan yang mengelakkan CASE berlebihan klausa:
CREATE OR REPLACE FUNCTION get_stuff(_param text, _orderby text, _limit int) RETURNS SETOF stuff AS $func$ BEGIN RETURN QUERY EXECUTE ' SELECT * FROM stuff WHERE col = ORDER BY ' || quote_ident(_orderby) || ' ASC LIMIT ' USING _param, _limit; END $func$ LANGUAGE plpgsql;
Penggunaan:
SELECT * FROM get_stuff('hello', 'col2', 100);
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Memesan dan Mengehadkan Keputusan dengan Cekap daripada Fungsi Jadual PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!