Telkens wanneer u functies voor kolommen gebruikt, moet u ze een alias toewijzen. De reden hiervoor is dat u mogelijk veel kolommen in de functie gebruikt, en MySQL weet niet automatisch welke u moet gebruiken voor de uitvoer van één kolom, en het zou u een kolomnaam opleveren die lijkt op de functie die u gebruikte.
De oplossing die je tegenkwam is absoluut geldig. Omwille van de leesbaarheid wordt het gebruik van aliassen en kolomnamen echter aanbevolen.
Uw vraag zou dus als volgt moeten luiden:
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