Linuchs: mySQL: 1241: Operand should contain 1 column(s)

Beitrag lesen

problematische Seite

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