När du använder funktioner för kolumner måste du tilldela dem ett alias. Anledningen till detta är att du kanske använder många kolumner i funktionen, och MySQL kommer inte automatiskt att veta vilken som ska användas för en kolumnutmatning, och det skulle generera ett kolumnnamn som liknar den funktion du använde.
Lösningen du stötte på är absolut giltig. Av läsbarhetsskäl rekommenderas dock användning av alias och kolumnnamn.
Så din fråga bör lyda 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