[MYSQL] select * where primary key = '#'

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • neliss
  • Registratie: Juni 2009
  • Laatst online: 17-09 17:14

neliss

h00t h00t!

Topicstarter
Is er een manier om in mysql te selecteren op primaire sleutel, zonder hiervan de veldnaam te weten?
Dus bijv:
code:
1
2
create table test (uid smallint auto_increment, primary key(uid), username varchar(200))
select username from test where uid = '1'


maar dan met een query als:
code:
1
select username from test where *primary key* = '1'


thanks!

Acties:
  • 0 Henk 'm!

  • croontje
  • Registratie: April 2004
  • Laatst online: 26-07 00:34
Kom je de veldnaam van de Primary key te weten als je

SHOW COLUMNS FROM mijntabel WHERE KEY="PRI"

doet?
Ik kan het hier niet testen :)

Acties:
  • 0 Henk 'm!

Verwijderd

croontje schreef op zaterdag 10 oktober 2009 @ 07:30:
Kom je de veldnaam van de Primary key te weten als je

SHOW COLUMNS FROM mijntabel WHERE KEY="PRI"

doet?
Ik kan het hier niet testen :)
Die doet het (bij mij iig) niet. Na wat goochelen kwam ik op

SQL:
1
SHOW FULL FIELDS FROM drafts WHERE  `key` =  'PRI'


SHOW COLUMNS werkt ook, als je die Key maar escapet met backticks ``

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Leuk dat er al naar oplossingen gezocht wordt voor een stupide probleem.

Tot een goede reden gegeven is, is de enige juiste reactie:
Waarom weet je de pk niet?

{signature}


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Wat Voutloos zeg dus. En mocht je dit echt willen (tip: zeer waarschijnlijk niet ;) ): wat doe je als je een samengestelde primaire sleutel hebt? En waar haal je je waardes vandaan om mee te selecteren?

Maar nog even over de vraags zelf: Dit is te vinden in de MySQL docs, dus wat heb je zelf al geprobreerd en wat lukte er niet mee? Je dumpt nu een vraag en thats it. Hier verwachten we iets meer. Als je PRG Beleid eens doorkijkt dan weet je hoe en wat.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • neliss
  • Registratie: Juni 2009
  • Laatst online: 17-09 17:14

neliss

h00t h00t!

Topicstarter
Bedankt voor de oplossingen croontje en spijtbetuiging, dit lost mijn probleem op!
@voutloos en creepy: Ik ben het helemaal met jullie eens dat je primaire sleutels zou moeten weten, punt is alleen dat het hier om een (universele) functie gaat waar dit voor meerdere tabellen zal worden uitgevoerd..

Ik heb wel in de mysql documentation rondgesnuffeld, maar ik heb dit altijd al een doolhof gevonden en ook ditmaal geen succes gehad. Had in het kader van efficientie eigenlijk gehoopt dat er een straightforward oplossing voor zou zijn, maar die extra (sub-) query is ook geen ramp. Nogmaals bedankt!

Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

neliss schreef op zaterdag 10 oktober 2009 @ 10:13:
Bedankt voor de oplossingen croontje en spijtbetuiging, dit lost mijn probleem op!
@voutloos en creepy: Ik ben het helemaal met jullie eens dat je primaire sleutels zou moeten weten, punt is alleen dat het hier om een (universele) functie gaat waar dit voor meerdere tabellen zal worden uitgevoerd..
Ik denk dat je dan gewoon een lookup table van tabelnaam naar PK-kolomnaam moet gebruiken. In zeker zin is dat ook wat ORM frameworks doen: in je mapping staat per tabel de PK gedefinieerd en de universele getEntityById methode weet daarom altijd de PK. Dat is iets meer werk als je datamodel wijzigt, maar het maakt ook explicieter wat er gebeurt. Bovendien ga je, zoals Creepy al aangeeft, de mist in met samengestelde PK's.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Confusion schreef op zaterdag 10 oktober 2009 @ 12:36:
In zeker zin is dat ook wat ORM frameworks doen: in je mapping staat per tabel de PK gedefinieerd en de universele getEntityById methode weet daarom altijd de PK.
Of het ORM noemt een enkelvoudige PK gewoon altijd `id` en heeft geen verder mapping nodig. ;)

{signature}


Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Voutloos schreef op zaterdag 10 oktober 2009 @ 13:55:
[...]
Of het ORM noemt een enkelvoudige PK gewoon altijd `id` en heeft geen verder mapping nodig. ;)
Als dat tot de mogelijkheden hoort is dat natuurlijk prima, maar soms staan de naamgevingsrichtlijnen dat niet toe of werk je met een bestaande database waarin de naamgeving anders is en niet zomaar veranderd kan worden. In ieder geval is de gewenste functionaliteit wat dat betreft niet zo heel vreemd.

[ Voor 16% gewijzigd door Confusion op 10-10-2009 14:07 ]

Wie trösten wir uns, die Mörder aller Mörder?

Pagina: 1