Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


mysql group_concat sortering

Postades av 2009-06-11 11:29:15 - Stefan Johansson, i forum mysq, Tråden har 3 Kommentarer och lästs av 7827 personer

tjena! jag har lite problem med group_concat

jag har en produkt till vilken olika attribut med alternativ är kopplade enligt:

product
--------
productguid
name

variant
-------
productguid
variantguid
articleno

attribute
---------
attributeid
name
sortorder

attributealternative
---------------------
attributealternativeid
name
sortorder

variantattributevalue
-----------------------
variantguid
attributeid
attributealternativeid

Ett attribut kan vara spelartyp, loft och ett attributalternativ kan vara t.ex. herr, dam, 22 grader, 9 grader

Genom denna struktur kan jag skapa produkter som har varianter med olika attribut.

Nu vill jag ha en sql sats som hämtar ut de varianter som finns:

Först kör jag:
select vav.*, a.NameDefault, aa.NameDefault, a.SortOrder as attributesort, aa.SortOrder as attributealtsort from VariantAttributeValue vav JOIN Attribute a ON a.AttributeId=vav.AttributeId JOIN AttributeAlternative aa ON aa.AttributeAlternativeId = vav.AttributeAlternativeId JOIN Variant v on v.VariantGuid = vav.VariantGuid WHERE v.ProductGuid = '08c7d145-1d8a-4162-adcf-62b8af9893a4' Order By a.SortOrder, aa.SortOrder

vilket ger mig resultatet

www.stefanj.se/resultat1.jpg

I detta fall har en produkt attributen: spelartyp, loft och skaft. Ordningen på attributen sätts enligt sortorder för attribute så att spelartyp kommer först, sen loft, sedan skaft. MEN jag vill därefter också sortera på attributalternativ med hjälp av dess sortorder så att 9,5 grader kommer före 12 grader

Om jag kör en group_concat:

select group_concat(aa.Name ORDER BY a.SortOrder, aa.SortOrder SEPARATOR ', ') availablein from VariantAttributeValue vav JOIN Attribute a ON a.AttributeId=vav.AttributeId JOIN AttributeAlternative aa ON aa.AttributeAlternativeId = vav.AttributeAlternativeId JOIN Variant v on v.VariantGuid = vav.VariantGuid WHERE v.ProductGuid = '08c7d145-1d8a-4162-adcf-62b8af9893a4' group by vav.VariantGuid

ger detta mig resultatet

www.stefanj.se/resultat2.jpg

Men jag vill alltså ha 9,5 grader överst.

Hur kan man lösa detta?

/Mvh
Stefan


Svara

Sv: mysql group_concat sortering

Postades av 2009-06-15 13:08:32 - Stefan Johansson

om det går att lösa frågan på annat snyggt sätt utan att använda group_concat är det självklart ok!

/s


Svara

Sv:mysql group_concat sortering

Postades av 2009-06-17 07:12:12 - Thomas Vanhaniemi

Är inte säker på att detta ger det du vill, men kanske något i stil med detta?

?
1
2
3
4
5
6
7
8
9
10
SELECT GROUP_CONCAT(o.Name ORDER BY o.SortOrder1, o.SortOrder2 SEPARATOR ', ') availablein FROM
(
    SELECT vav.VariantGuid, aa.Name, a.SortOrder SortOrder1, aa.SortOrder SortOrder2 FROM VariantAttributeValue vav
    JOIN Attribute a USING (AttributeId)
    JOIN AttributeAlternative aa USING (AttributeAlternativeId)
    JOIN Variant v USING (VariantGuid)
    WHERE v.ProductGuid = '08c7d145-1d8a-4162-adcf-62b8af9893a4'
    ORDER BY SortOrder1, SortOrder2, aa.Name
) o
GROUP BY o.VariantGuid


Svara

Sv: mysql group_concat sortering

Postades av 2009-06-18 13:22:06 - Stefan Johansson

Hej thomas!

Ja något i stil med det men även här blir sorteringen inte som jag vill. Resultatet blir samma som jag får...

Om du kollar på 'resultat1.jpg' ovan så tror jag problemet beror på att 'herr höger' blir styrande på nåt sätt. Eftersom alla herr höger poster har samma attributesort (=1) så hamnar någon av dessa
först i listan, i detta fall den med guid '178f102d...'. När sedan group_concat körs så tar den den post som har attributet loft och med variantguid '178f102d...' vilket då blir loft 10,5 grader...

Men jag vill ju ha 9,5 grader först vilken har variantguid '6de34f40...'

hmmm!?!?! Ingen annan som har stött på samma grej?

/stefan


Svara

Nyligen

  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe
  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 128
27 958
271 737
3 741
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next