Autor Zpráva
lamatér
Profil *
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
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 *
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
pozor na group_concat, ma omezenou delku. tusim ze vychozi je 1024, pro rozsireni

SET group_concat_max_len = Nova_hodnota

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0