From: Christopher Browne <cbbrowne@acm.org>
To: pgsql-sql@postgresql.org
Subject: Re: plpgsql.. SELECT INTO ... WHERE FIELD LIKE
Date: Thu, 16 Dec 2004 22:08:13 -0500
Message-ID: <m3vfb139lu.fsf@knuth.knuth.cbbrowne.com> (raw)
References: <001901c4e3ca$7c71aca0$a101a8c0@home.axiontech.com>
Oops! yudie@axiontech.com ("Yudie") was seen spray-painting on a wall:
> How in plpgsql use LIKE with a variable?
>
> let say I want to do this query:
> SELECT INTO RS id FROM customer WHERE firstname LIKE keyword% LIMIT 1;
>
> keyword is a variable, in this case I want to find name like 'Jo%'
>
> CREATE OR REPLACE FUNCTION custlike(text) RETURNS INT4 AS'
> DECLARE
> keyword ALIAS FOR $1;
> RS RECORD;
> BEGIN
> SELECT INTO RS id FROM customer WHERE firstname like keyword% LIMIT 1;
> IF FOUND THEN
> RETURN RS.id;
> ELSE
> RETURN NULL;
> END IF;
> END'
> LANGUAGE 'PLPGSQL';
Try:
SELECT INTO RS ID FROM CUSTOMER WHERE FIRSTNAME LIKE KEYWORD || ''%'' LIMIT 1;
You append KEYWORD and a '%' together using ||. You need to use
doubled quotes inside the quoted environment; one gets stripped off so
that the stored procedure will wind up containing the query:
SELECT INTO RS ID FROM CUSTOMER WHERE FIRSTNAME LIKE KEYWORD || '%' LIMIT 1;
--
let name="cbbrowne" and tld="gmail.com" in name ^ "@" ^ tld;;
http://linuxfinances.info/info/sgml.html
C is almost a real language. (see assembler) Even the name sounds like
it's gone through an optimizing compiler. Get rid of all of those
stupid brackets and we'll talk. (see LISP)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: cbbrowne@acm.org
Subject: Re: plpgsql.. SELECT INTO ... WHERE FIELD LIKE
In-Reply-To: <m3vfb139lu.fsf@knuth.knuth.cbbrowne.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox