webForumDet fria alternativet

GROUP BY

Databaser & SQL

4 svar · 510 visningar · startad av Web-Tor

Medlem sedan nov. 200013 890 inlägg
Frågan#1

Jag använde den här frågan för att hämta unika Owner:

$sql = "SELECT colTag, colIndex FROM cou WHERE colArea = '$name' GROUP BY colOwner";

Nu vill jag ha in ett villkor som säger att "om colIndex = N/A skall dom hamna i en egen group"

Någon som hänger med på vad jag menar?

(Frågan gäller php och MySQL)

Medlem sedan dec. 20025 483 inlägg
#2
$sql = "SELECT colTag, colIndex FROM cou WHERE colArea = '$name' GROUP BY CASE WHEN colIndex = 'N/A' THEN 'N/A' ELSE colOwner END";
Medlem sedan nov. 200013 890 inlägg
#3

Det ser riktigt trevligt ut men jag får inte riktigt till det. Hur skiljer jag på de olika alternativen? Hur får jag ut dom olika grupperna?

Idag (med sql-frågan i mitt första inlägg) tar jag ut resultatet så här:

$result = mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)){
	createGroup($doc,$moc,$name,$row['colTag']);
}

Nu vill jag alltså ropa på en annan funktion om det är så att colIndex = N/A.

Medlem sedan nov. 200013 890 inlägg
#4

Jag har fått tänka om lite. :l

Jag vill gruppera efter de rader där colArea, colValidFor och colIndex tillsammans är unika. Förutom det behöver jag ha med följande info i SQL-frågan

$sql = "SELECT colTag, colIndex FROM cou WHERE colArea = '$vArea'";

Några förslag?

Medlem sedan nov. 200013 890 inlägg
#5

Det var ju inte så svårt:

$sql = "SELECT colTag, colIndex FROM cou WHERE colArea = '$vArea' GROUP BY colArea, colIndex, colValidFor";

Det visade sig att jag hade ett fel längre ner i koden som strulade till det.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)