Wann immer Sie Funktionen für Spalten verwenden, müssen Sie ihnen einen Alias zuweisen. Der Grund dafür ist, dass Sie möglicherweise viele Spalten in der Funktion verwenden und MySQL nicht automatisch weiß, welche für die Ausgabe einer einzelnen Spalte verwendet werden soll, und es würde Ihnen einen Spaltennamen generieren, der dem der von Ihnen verwendeten Funktion ähnelt.
Die Lösung, auf die Sie gestoßen sind, ist absolut gültig. Aus Gründen der Lesbarkeit wird jedoch die Verwendung von Aliasnamen und Spaltennamen empfohlen.
Ihre Abfrage sollte also wie folgt lauten:
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