Autor | Zpráva | ||
---|---|---|---|
lamatér Profil * |
#1 · Zasláno: 12. 7. 2008, 21:07:27
Zdravím... mám takový prblém u kterého pevně věřím, že nějaké řešení existuje, jen vůbec nevím jak na to.
když mám dotaz SELECT count(neco), neco, uid FROM tabulka GROUP BY neco vrátí mi něco jako: 3 hodnota_1 což říká, že mám ve sloupci neco 3x hodnotu hodnota_1 jenže každá z nich má ve svém řádku jiné uid potřeboval bych nějak zjistlit/vypsat, jestli má uid určitou hodnotu, například 1 což může být nebo také nemusí ve všech 3 výskytech... ani není podstatné kolikrát tam je 1 ale spíše jestli vůbec tam je tedy něco jako podminku jestli uid==1 vypiš x jinak vypiš y nebo vypsat kolik uid=1 je v tom seskupeném výpisu nebo vypsat uid když je 1 jinak NULL Prostě něco v tom smyslu, s tím už bych si poradil v php jen nevím jestli mám použít vložený dotaz, sjednocení se stejnou tabulku nějaké IF, WHERE, EXIST nebo co se na to dá použít |
||
fos4 Profil |
#2 · Zasláno: 14. 7. 2008, 08:35:37 · Upravil/a: fos4
SELECT count(IF (neco IS NULL, null, 1)) AS pocetCoNeniNull, count(DISTINCT neco) AS rozdilneNeco, neco, uid FROM tabulka GROUP BY neco
apod.. snad pomuze.. |
||
Kajman_ Profil * |
Asi stačí tu podmínku na konktrétní hodnotu nějakého sloupečku dát před group by do where.
Nebo možná hledáte group_concat. Nebo si jednoduše dejte group by podle obou sloupců... tedy neco i uid. |
||
lamatér Profil * |
#4 · Zasláno: 15. 7. 2008, 11:06:11
no měl konstrukci s tím group_concat:
IF(LOCATE(1,group_concat(uid)) = 0, "ne", "ano") ze které vypadlo ano pokud tam jsou záznamy 1 nebo jinak ne poté jsem ji ale dýky fos4-ově nápovědě předělal na něco co mi vypíše kolikrát se tam např. hodnota 1 vyskytuje: count(IF(uid = 1, 1, NULL)) takže díky oběma |
||
fos4 Profil |
#5 · Zasláno: 16. 7. 2008, 20:19:21
pozor na group_concat, ma omezenou delku. tusim ze vychozi je 1024, pro rozsireni
SET group_concat_max_len = Nova_hodnota |
||
Časová prodleva: 17 let
|
0