WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hjälp med avancerad SQL-sträng (https://www.wn.se/forum/showthread.php?t=1037830)

Conny Westh 2009-09-09 07:59

Lindhl hann före men jag skulle valt Lindahls lösning för den är "rätt" tänkt...:

Kod:

SELECT *
FROM (SELECT *
          FROM resultat
          ORDER BY date DESC
          LIMIT 50
        ) AS s
ORDER BY resultat DESC


Magnus_A 2009-09-09 09:43

Citat:

Ursprungligen postat av Lindahl (Inlägg 20320976)
Detta funkar i MySQL för mig:
SELECT * FROM (SELECT * FROM resultat ORDER BY date DESC LIMIT 50) AS s ORDER BY resultat DESC

Lägg denna konstruktion på minnet, den är inte bara bra till att göra urval på en sortering och visa på en annan.
Man kan också kringgå Mysql:s förbud mot att välja ut och uppdatera i samma fråga. Om man vill uppdatera en tabell så att en rad får samma värde som en annan rad har,
t ex.
Kod:

Update tabell set kolumn=
  (select kolumn from tabell where index=värde)
where index=annatvärde

ger felmeddelande om att inte Mysql vill göra en subquery i samma sats som man uppdaterar.

Om man använder metoden ovan så blir det en ny temporär tabell, som vi kan ställa en fråga till så här:

Kod:

Update tabell set kolumn=
  ( select kolumn from 
    (select * from tabell) as x
  where index=värde )
where index=annatvärde

Läs mer på http://www.xaprb.com/blog/2006/06/23...rget-in-mysql/


Alla tider är GMT +2. Klockan är nu 01:48.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson