Gå til innhold

Krav til en rad som er definert i MySQL-spørringen


Anbefalte innlegg

Si at jeg kjører følgende spørring mot en MySQL-database:

 

SELECT table.my_row AS `new_row` FROM `table`

 

Hvordan får jeg da enten stilt et krav til `new_row` (WHERE AND/OR/NOT) eller sortere resultatet etter `new_row`?

 

Tenkte først at jeg kunne gjøre slik:

 

 

SELECT table.my_row AS `new_row` FROM `table` WHERE `new_row` = 'YES'

 

Men dette gav bare feilmeldingen #1054 - Unknown column 'new_row' in 'where clause' .

 

Det er ikke aktuelt å bruke:

 

SELECT table.my_row AS `new_row` FROM `table` WHERE `my_row` = 'YES'

...noe som har med det egentlige formålet med problemstillingen. Jeg trenger derfor å sette krav til eller sortere resultatet etter en rad som er definert i selve spørringen.

Lenke til kommentar
Videoannonse
Annonse
Det er ikke aktuelt å bruke ...

9522144[/snapback]

Neihei? Og hvorfor ikke det? Det er slik SQL fungerer. En liten forenklet begrunnelse: Where clausen brukes til å filtrere hvilke data som skal presenteres til klienten, noe som skjer før kolonnene navngis. Eventuelle workarounds vil potensielt ha negative ytelsesmessige konsekvenser, og frarådes.

Lenke til kommentar

Grunnen til at dette ikke er aktuelt kan leses i denne posten. Jeg ønsker å løse dette problemet kun med bruk av MySQL, men om det ikke går, er jeg nødt til å blande inn PHP og arrays. Hadde bare håpet at det var mulig å unngå det :)

 

 

EDIT: Men vil en eventuell workaround gi mer ytelsestap enn å la MySQL returnere alle radene (mange tusen), for så å la PHP søke gjennom en array etter en rad som tilfredsstiller kravene?

Endret av simenss
Lenke til kommentar

Jeg leste gjennom hele posten og ser ikke helt hva du sikter til. Har forresten postet et forslag til løsning på queryen du slet med sist - selv om jeg ikke ser poenget med den enda da ;)

 

Tror du burde bruke litt mer tid på å tenke på hva du skal vise av data, og hvorfor du skal vise dem.

 

Ser ikke problemet ditt ovenfor - utfra gitte kriterier så bygger du opp queryen din

 

pseudokode:

Variabel kolonnenavn = "my row"

 

"SELECT "+kolonnenavn+" FROM tabell ORDER BY "+kolonnenavn

Endret av blackbrrd
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...