Autor | Zpráva | ||
---|---|---|---|
drubez Profil * |
#1 · Zasláno: 30. 6. 2014, 19:26:12 · Upravil/a: drubez
Ahojte,
byl by tu někdo od toho srdce a napsal mi jednoduchou proceduru pro MySQL, která má za úkol jediné: vezme string, nahradí v něm řetězec 'a' za 'b' a ten vrátí. Tedy obdoba tohoto pseudokódu: zamen_text($input_text) { return replace('a', 'b', $input_text) } Parametr $input_text by měl být dlouhý text, žádný krátký varchar (jestli to hraje nějakou roli). Snažím se o to už dvě hodiny, ale pořád mi to háže nějaký errory. Přestože googlim jak divý, nedokážu se dobrat k jedinýmu funkčnímu řešení. Tak jako vždy, krátce po položení dotazu vyřešeno :) Ale aktuální dotaz zní: jak tuto proceduru zavolat - vyseletit z ní výsledek? Dejme tomu, že ji chci použít v podmínce where SELECT * FROM pages WHERE zamen_text(pages.perex) LIKE '%nejaky string%' Vím, že se volá přes CALL, ale nevím, jak to zapasovat do výše uvedeného dotazu |
||
Kcko Profil |
Nepotřebuješ volat žádnou proceduru.
DROP FUNCTION IF EXISTS myFn; DELIMITER $$ CREATE FUNCTION myFn(inText TEXT, letter1 CHAR, letter2 CHAR) RETURNS TEXT READS SQL DATA BEGIN RETURN REPLACE(inText, letter1, letter2); END; $$ DELIMITER ; SELECT * FROM pages WHERE myFn(pages.perex, "A", "B") LIKE '%nejaky string%' |
||
drubez Profil * |
#3 · Zasláno: 30. 6. 2014, 19:59:37
oo vřele díky, takže jsem si měl koukám vytvořit funkci, ne proceduru. Rozdíl mezi tím jsem doteď neznal.
Ještě jednou díkes |
||
Časová prodleva: 10 let
|
0