[mysql] chars omzetten in getallen / chars en group by

Pagina: 1
Acties:

  • simon
  • Registratie: Maart 2002
  • Laatst online: 22:34
Ik zit met een enorm onhandig probleem.

Ik moet namelijk de resultaten van een enquete ontwikkelen, maar nu ontdekte ik dat diegene die de achterliggende database heeft ontwikkeld een enorm onhandige manier van opslaan heeft.

Bij elke vraag kun je zo'n 6 punten halen, maarrrrr (nu komt het onhandige), je hebt de keuze A, B, C, D en E. Bij elke letter hoort een waarde, bij A bijvoorbeeld 6, bij B 4 etc.. Beetje onhandig. Maar het stomme is nu dat hij alleen die letter in de database zet, en niet direct ook de waarde bij die letter.

Dat is verschrikkelijk onhandig, want nu kan ik niet direct vanuit MySQL rekenen, en ik kan geen aanpassingen doen in zijn datastructuur.

Is het mogelijk in MySQL voordat dat de sum() (want ik moet een optelsom van die punten hebben) uitgevoerd wordt er een aantal punten wordt berekend? Ik kon er niets over vinden, lijkt me ook vreemde situatie. Normaal zou je het toch anders aanpakken :P

Of is het mogelijk om een soort van implode binnen mysql te doen, verschillende velden in 1 te stoppen, met group by vind ik niet de functies die ik zoek..Ik zit met een enorm onhandig probleem.

Ik moet namelijk de resultaten van een enquete ontwikkelen, maar nu ontdekte ik dat diegene die de achterliggende database heeft ontwikkeld een enorm onhandige manier van opslaan heeft.

Bij elke vraag kun je zo'n 6 punten halen, maarrrrr (nu komt het onhandige), je hebt de keuze A, B, C, D en E. Bij elke letter hoort een waarde, bij A bijvoorbeeld 6, bij B 4 etc.. Beetje onhandig. Maar het stomme is nu dat hij alleen die letter in de database zet, en niet direct ook de waarde bij die letter.

Dat is verschrikkelijk onhandig, want nu kan ik niet direct vanuit MySQL rekenen, en ik kan geen aanpassingen doen in zijn datastructuur.

Is het mogelijk in MySQL voordat dat de sum() (want ik moet een optelsom van die punten hebben) uitgevoerd wordt er een aantal punten wordt berekend? Ik kon er niets over vinden, lijkt me ook vreemde situatie. Normaal zou je het toch anders aanpakken :P

Of is het mogelijk om een soort van implode binnen mysql te doen, verschillende velden in 1 te stoppen, met group by vind ik niet de functies die ik zoek..

Iemand tips en hints (en nee, ik kan de structuur helaas niet aanpassen :/ )

|>


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Is A altijd 6 en B 4 etc ?

dan zou je
SQL:
1
2
3
4
5
CASE antwoord
  WHEN A THEN 6
  WHEN B THEN 4
  ....
END As AntwoordWaarde

oid kunnen doen

  • simon
  • Registratie: Maart 2002
  • Laatst online: 22:34
TheRookie schreef op zaterdag 14 januari 2006 @ 15:33:
Is A altijd 6 en B 4 etc ?

dan zou je
SQL:
1
2
3
4
5
CASE antwoord
  WHEN A THEN 6
  WHEN B THEN 4
  ....
END As AntwoordWaarde

oid kunnen doen
A is altijd 6 ja, maar kan dat in MySQL? Hmm, in 5 blijkbaar wel, maar in 4 zie ik die support niet bestaan :/

[ Voor 11% gewijzigd door simon op 14-01-2006 15:35 ]

|>


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

4.1 manual; en in het engels
CASE was added in MySQL 3.23.3.

[ Voor 51% gewijzigd door TheRookie op 14-01-2006 15:41 . Reden: nu + engelse link :) ]