07. maj 2005 - 01:39Der er
9 kommentarer og 1 løsning
"Hvis ingen row's så en standard-row" i en forespørgel - hvordan?
Hej eksperter!
Jeg sidder og mangler lidt hjælp til en (måske) kompliceret SQL-query problem. Jeg har 2 tabeller - en over alle tutorer i mit system (inkl. E-mailadresser) - kaldet 2005_Tutorer og så en gruppe-tabel, hvor der er 2 felter, en med tutorid (som korresponderer med tutorid'erne i 2005_Tutorer) og så mailalias, som er et suffix man kan sætte efter en generel tutor konto. F.eks. tutor+web@xxxxx giver en mail til alle tutorerne i web-gruppen (altså til deres personlige E-mailadresse). Det med at håndtere mailene kører fint, problemet er når folk kommer til at skrive f.eks. tutor+dette+findes+ikke@xxxx, så brokker den sig,for den gruppe eksisterer ikke. Det jeg så gerne vil have er at den MySQL-query (som mailsystemet) bruger, kan se om gruppen eksisterer, og hvis den gør, så returnerer MySQL gladeligt E-mailadresserne på tutorerne i den pågældende gruppe og hvis ikke, så sendes mailen til en fast bestemt E-mailadresse. Jeg har brugt flg., men problemet med den query er at IF-funktionen i MySQL kun vil returnere een værdi, og altså ikke x antal rækker.:
select if( /*Vi undersøger hvor mange rækker en evt. query kunne returnere, hvis der er 0, så skal vi ha' fat i den generelle E-mailadresse*/ 0 in (select count(*) from 2005_Tutorer natural join 2005_TutorIn as TI where TI.mailalias ='gruppenavn'), /*Den generelle E-mailadresse */ 'den generelle E-mailadresse', /*vi har altså emailadresser i den pågældende gruppe */ (select email from 2005_Tutorer natural join 2005_TutorIn as TI where TI.mailalias ='gruppenavn'))
Hvis man tilføjer limit 0,1 til den sidste subquery, så virker det uden problemer, men hvis ikke så kommer MySQL med fejlen #1242 - Subquery returns more than 1 row
Jeg kan ikke gennemskue hvordan det ellers kunne gøres.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
øhh, jeg tror jeg fik beskrevet det forkert. Jeg skulle kun have "default page"/"den generelle E-mailadresse" ud, hvis der slet ingen rækker returneres fra "select email from 2005_Tutorer natural join 2005_TutorIn as TI where TI.mailalias ='gruppenavn'"-querien. Der returneres f.eks. ingen rækker hvis "gruppenavn" ikke eksisterer i tabellen.
Jaa, du siger selvfølgelig noget, men jeg er ikke lige den skarpeste kniv i skuffen til det pjat. Desuden virker systemet lige nu som det skal (altså når der er indtastet den rette E-mail-adresse), og derfor ville det jo være oplagt, hvis man bare ændrede i MySQL-querien.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.