Avatar billede groyk Novice
22. december 2011 - 08:27 Der er 3 kommentarer og
1 løsning

Avanceret MySQL request

Hej Eksperter

Jeg har denne SQL str som jeg gerne vil modificere en smule


SELECT s.*, t.*, g.gid, w.wid
FROM (stock_has_stockgroups g
LEFT JOIN stock_has_text t ON g.sid = t.sid)
LEFT JOIN stock s ON s.sid = g.sid
LEFT JOIN stock_groups_has_websites w ON g.gid = w.id
WHERE s.online='1'
AND g.gid='$gid'
AND t.lid='$lid'
AND w.wid='$wid'


Det jeg gerne vil er at hvis t.header er tom (' ') skal t.lid ændres og header sættes med nye data.

Det handler om at hente produktdata ud, hvis der ikke eksistere en overskrift på ex. dansk, så skal den engelske overskrift hentes.

Vil gerne hvis det hele kan koges ind i en string, så jeg ikke skal loope gennem alle produkter og hente tekster separat.
Avatar billede vagnk Juniormester
22. december 2011 - 10:13 #1
Du skriver "Det jeg gerne vil er at hvis t.header er tom (' ') skal t.lid ændres og header sættes med nye data.".
Men mener du TOM (NULL) eller mener du indeholdende ' ' (space)?

Jeg sidder med en fornemmelse af, at det ikke er en query du selv har konstrueret, så med fare for at have misforstået spørgsmålet:
I din WHERE-clause sæt en linje med
AND t.header IS NULL
eller
AND t.header = ' ' (eller test på første tegn med SUBSTR)

Ellers må du komme igen med mere info.
Avatar billede JensPeterSvensson Nybegynder
22. december 2011 - 10:53 #2
Noget i retning af:
SELECT s.*, IF(t.header =' ','BLA',t.header) AS header, IF(t.header =' ',1,t.lid) AS lid, g.gid, w.wid
FROM (stock_has_stockgroups g
LEFT JOIN stock_has_text t ON g.sid = t.sid)
LEFT JOIN stock s ON s.sid = g.sid
LEFT JOIN stock_groups_has_websites w ON g.gid = w.id
WHERE s.online='1'
AND g.gid='$gid'
AND t.lid='$lid'
AND w.wid='$wid'
Avatar billede groyk Novice
22. december 2011 - 12:00 #3
Følgende virker


IF(t.header =' ','BLA',t.header) AS header,


Vil dog gerne lave følgende select i stedet for 'BLA'


SELECT header, 
FROM stock_has_text
WHERE sid = s.sid
AND lid = 'en'
Avatar billede groyk Novice
06. januar 2012 - 07:19 #4
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester