Moin,
in einem Sub-Select suche ich pro Veranstalter ein zufälliges Audio-Element.
Von diesem brauche ich 4 Werte:
- album
- titel
- url
- youtube_id (zum Extrahieren der Tonspur)
SELECT
MAX( CONCAT( trm1.zeit_neu,'|',trm1.id )) zeit_neu
...
# Zufalls-Media-Titel
,(
SELECT
CONCAT( med1.album, '@', med1.titel, '@', med1.url, '@', med1.youtube_id ) -- 2022-08-20 youtube_id
#,med1.album med_album
#,med1.titel med_titel
#,med1.url med_url
#,med1.youtube_id med_youtube_id
FROM bia_medien med1
WHERE med1.adress_id = adr1.id
AND med1.erreichbar_kz = '1'
# keine Weihnachtslieder im Sommer
AND ( med1.gueltig_von IS NULL
OR ( SUBSTR(med1.gueltig_von,6) <= SUBSTR(CURDATE(),6)
AND SUBSTR(med1.gueltig_bis,6) >= SUBSTR(CURDATE(),6) )
)
ORDER BY RAND()
LIMIT 0,1
) med_titel_url
FROM ...
Der Not gehorchend habe ich die 4 Werte per CONCAT zusammengefasst und trenne sie später wieder per explode. Wenn ich die auskommentierten Einzelwerte anspreche, kommt obiger Fehler.
Gibt es nur diese „Bastelversion“ mit CONCAT oder kann ich die vier Werte auch einzeln erhalten?
fragt Linuchs
Edit: Ist CONCAT auf eine Anzahl Werte begrenzt?
#CONCAT( med1.album, '@', med1.titel, '@', med1.url, '@', med1.youtube_id ) -- bleibt leer
CONCAT( med1.album, '@', med1.titel, '@', med1.url ) -- funktioniert