Når du bruger funktioner til kolonner, skal du tildele dem et alias. Årsagen til dette er, fordi du muligvis bruger mange kolonner i funktionen, og MySQL vil ikke automatisk vide, hvilken der skal bruges til enkeltkolonneoutput, og det ville generere dig et kolonnenavn, der ligner den funktion, du brugte.
Den løsning, du stødte på, er absolut gyldig. Men af hensyn til læsbarheden anbefales det at bruge aliaser og kolonnenavne.
Så din forespørgsel bør læses som sådan:
SELECT
SUBSTRING(LEFT(configuration,
LOCATE('abhol_firma', configuration) - 30),
LOCATE('treuhand_betrag', configuration) + 22,
100) as configuration /* note the alias here */
FROM
tl_iso_product_collection_item
WHERE
LOCATE('abhol_firma', configuration) > 0
AND LOCATE('treuhand_betrag', configuration) > 0
ORDER BY id DESC
LIMIT 1