Chaque fois que vous utilisez des fonctions pour les colonnes, vous devez leur attribuer un alias. La raison en est que vous utilisez peut-être plusieurs colonnes dans la fonction, et MySQL ne saura pas automatiquement laquelle utiliser pour la sortie d'une seule colonne, et cela vous générera un nom de colonne similaire à la fonction que vous avez utilisée.
La solution que vous avez trouvée est absolument valable. Cependant, pour des raisons de lisibilité, il est recommandé d'utiliser des alias et des noms de colonne.
Votre requête doit donc se lire comme suit :
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