| Autor | Zpráva | ||
|---|---|---|---|
| karlos1 Profil * |
#1 · Zasláno: 25. 8. 2014, 16:06:37
Ahoj,
mám následující kód, který má vybrat buď sadu hodnot a udělat z nich string oddělený čárkami, nebo "-1", pokud hodnota neexistuje. SELECT c.*, d.status, IF(h.p_id <= 0, '-1', GROUP_CONCAT(h.p_id)) AS p -- zahodi mi vysledek, ktery neni v tabulce h, tedy h.p_id = NULL... mimochodem, melo by to byt NULL, ale podminka h.p_id = NULL, h.p_id = '' nefunguji, zacala fungovat az nerovnost s nulou. Radky, kde p=-1 mi to nevraci -- IF(h.p_id <= 0, '-1', 33) AS p -- tato alternativni podminka vrati vsechny radky, 'p' je bud 33, nebo -1 FROM c JOIN d ON d.id = c.d_id LEFT JOIN h ON c.id = h.id V čem dělám chybu? |
||
| Tori Profil |
#2 · Zasláno: 25. 8. 2014, 20:10:48
karlos1:
Zkuste: SELECT *, d.status, IFNULL(GROUP_CONCAT(h.p_id), -1) p FROM ... |
||
| karlos1 Profil * |
#3 · Zasláno: 25. 8. 2014, 20:19:04
Tori:
SELECT *, d.status, IFNULL(GROUP_CONCAT(h.p_id), -1) p bylo první, co jsem zkoušel.
Ale máš pravdu, chybí group by, pak funguje jak můj zápis, tak i tento. Už jsem na to přišel, než jsem se vydal na cestu k domovu.
Takže tímto potvrzuji, že jsou oba zde uvedené kódy správné a chybí formule group by.
Díky. |
||
|
Časová prodleva: 12 let
|
|||
0