Re: plpgsql.. SELECT INTO ... WHERE FIELD LIKE
От | Christopher Browne |
---|---|
Тема | Re: plpgsql.. SELECT INTO ... WHERE FIELD LIKE |
Дата | |
Msg-id | m3vfb139lu.fsf@knuth.knuth.cbbrowne.com обсуждение исходный текст |
Ответ на | plpgsql.. SELECT INTO ... WHERE FIELD LIKE ("Yudie" <yudie@axiontech.com>) |
Список | pgsql-sql |
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)
В списке pgsql-sql по дате отправления: