Az sql-t érdemesebb sprintf-el összerakni, sokkal olvashatóbb lesz a kód és nem lesz 4 aposztróf/idézõjel/backslash egymás mellett szerencsétlen esetben.

Továbbá a like,or és limit kulcsszavak használata többszörösére növeli a futásidõt, bár nem mindig elkerülhetõek, illetve az adatbázis tervezési hibáiból adódóan nincs más út olykor.

Az or architekturális okok miatt lassú, a like azért mert string trükkökkel keres, a limit pedig azért mert mindig rendezi a recordsetet, bár ezek egy részét felteszem megfelelõ indexekkel felgyorsítottad.

Egyszerûbb lehet join/having/min/max függvényeket futtatni.

Nem tudom ellenõrizni, nincs itt mysql, de egy próbát ez is megérhet:

UPDATE kurzustabla
SET KRT_JELENTK=CONCAT(KRT_JELENTK,"._US_ID_."|)
WHERE KRT_ID=".$_POST."
AND exists (
SELECT distinct OK as result, as TRG_ELOFELT
FROM exam inner join targylist on TRG_ELOFELT like CONCAT(%,EX_TRG_KOD,%) where TRG_KOD=".$_POST."
AND EX_TELJESIT LIKE %."._US_ID_."||5%
union
SELECT OK as result, TRG_ELOFELT FROM targylist WHERE TRG_KOD=".$_POST."
)



A like helyett itt még gyorsabb lehet a LEFT, RIGHT sql függvény is, ha fix helyen van mindig az érdemjegy, ha jól látom, akkor a RIGHT(EX_TELJESIT,1) mûködhet.