mysql query (if in where clause)

Programovacie jazyky, rady, poradňa...
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

mysql query (if in where clause)

Príspevok od používateľa doddo999 »

Zdravim, nevedeli by ste mi prosím poradiť s úpravou nasledovného query?
aktuálne ho mám postavené zhruba nasledovne... nepodstatné časti sú vynechané

Kód: Vybrať všetko

SELECT * FROM produkt AS p, konfiguracia AS k WHERE 
  p.odstranene = 0
  AND p.id_produkt = k.id_produkt 
  ...
  AND ( 
    p.obdobie ' . like($obdobie) . '
    ....
  )
ORDER BY k.typ DESC, k.cena ASC LIMIT 0, 8 
a potreboval by som doplniť podmienku pred order a žiaľ google sa nejak nevedel vyjadriť, vlastne ani neviem či je to možné :(

Kód: Vybrať všetko

IF k.typ = "novinka" THEN
  k.typ = ""
END IF
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: mysql query (if in where clause)

Príspevok od používateľa harrison314 »

Kód: Vybrať všetko

SELECT * FROM produkt AS p, konfiguracia AS k WHERE 
  p.odstranene = 0
  AND p.id_produkt = k.id_produkt 
  ...
  AND ( 
    p.obdobie ' . like($obdobie) . '
    ....
  )
ORDER BY if(k.typ="novinka","",k.typ) DESC, k.cena ASC LIMIT 0, 8 
Alebo

Kód: Vybrať všetko

SELECT *,  if(k.typ="novinka","",k.typ) AS myTyp FROM produkt AS p, konfiguracia AS k WHERE 
  p.odstranene = 0
  AND p.id_produkt = k.id_produkt 
  ...
  AND ( 
    p.obdobie ' . like($obdobie) . '
    ....
  )
ORDER BY myTyp DESC, k.cena ASC LIMIT 0, 8 
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: mysql query (if in where clause)

Príspevok od používateľa doddo999 »

téma vyriešená, ďakujem za rýchlu odpoveď :)
Napísať odpoveď