Ik ben bezig met een PHP website waarin ik bestaande MySQL tabellen moet gebruiken. De login van bezoekers bestaat uit een string met 3 letters + volgnummer (bv. ABC30056)
Die letters hebben een betekenis en moeten gehandhaafd blijven, de opvolgende nummers moeten opgehoogd worden wanneer er een bezoeker wordt toegevoegd.
Nu is het simpel om bijvoorbeeld de hoogste waarde van een numeriek veld in een tabel te vinden, maar op dit veld met letters en cijfers stuit ik toch op enkele problemen.
Ik heb van alles geprobeerd, o.a.
Dit werkt echter niet (invalid use of group function)
Ik kan natuurlijk ook dit doen:
En dan het numerieke gedeelte eruit vissen en voor de insert met 1 ophogen, maar dat lijkt me op de een of andere manier niet betrouwbaar.
Iemand ideeën?
Die letters hebben een betekenis en moeten gehandhaafd blijven, de opvolgende nummers moeten opgehoogd worden wanneer er een bezoeker wordt toegevoegd.
Nu is het simpel om bijvoorbeeld de hoogste waarde van een numeriek veld in een tabel te vinden, maar op dit veld met letters en cijfers stuit ik toch op enkele problemen.
Ik heb van alles geprobeerd, o.a.
code:
1
2
3
| SELECT * FROM `tabel` WHERE LEFT( login, 3 ) = 'ABC' and MAX(SUBSTRING(login, 4,5)) |
Dit werkt echter niet (invalid use of group function)
Ik kan natuurlijk ook dit doen:
code:
1
2
3
| SELECT * FROM `tabel` WHERE LEFT( login, 3 ) = 'ABC' ORDER BY login DESC LIMIT 0 , 1 |
En dan het numerieke gedeelte eruit vissen en voor de insert met 1 ophogen, maar dat lijkt me op de een of andere manier niet betrouwbaar.
Iemand ideeën?
[ Voor 4% gewijzigd door klaaz op 03-12-2003 14:58 ]