| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | MySQL, hent de 50 ældste Fra : Harald | 
  Dato :  23-01-08 19:43 |  
  |   
            Jeg bruger MySQL 4.1
 
 Har en tabel med et datotid felt "DatoTid", jeg vil hente alle poster 
 sorteret i DatoTid DESC, det gør jeg sådan:
 
 SELECT * from kunder
 ORDER BY DatoTid DESC
 
 det virker også fint men hvad nu hvis jeg vil have en limit på 50 men det 
 skal være de 50 ældste og stadig sorteres i DESC?
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Nikolaj Svendsen (23-01-2008) 
         
	
            | Kommentar Fra : Nikolaj Svendsen | 
  Dato :  23-01-08 19:45 |  
  |   
            Limit 50
 
 "Harald" <noname@nomail.dk> skrev i en meddelelse 
 news:47978ad1$0$90265$14726298@news.sunsite.dk...
 > Jeg bruger MySQL 4.1
 >
 > Har en tabel med et datotid felt "DatoTid", jeg vil hente alle poster 
 > sorteret i DatoTid DESC, det gør jeg sådan:
 >
 > SELECT * from kunder
 > ORDER BY DatoTid DESC
 >
 > det virker også fint men hvad nu hvis jeg vil have en limit på 50 men det 
 > skal være de 50 ældste og stadig sorteres i DESC?
 >
 > /HK
 >
 > 
 
 
  
            
             |   |   
            
        
 
            
         
           Nikolaj Svendsen (23-01-2008) 
         
	
            | Kommentar Fra : Nikolaj Svendsen | 
  Dato :  23-01-08 19:45 |  
  |   
            
 "Nikolaj Svendsen" <nes@logtech.dk> skrev i en meddelelse 
 news:47978b17$0$15010$ba624c82@nntp02.dk.telia.net...
 > Limit 50
 >
 > "Harald" <noname@nomail.dk> skrev i en meddelelse 
 > news:47978ad1$0$90265$14726298@news.sunsite.dk...
 >> Jeg bruger MySQL 4.1
 >>
 >> Har en tabel med et datotid felt "DatoTid", jeg vil hente alle poster 
 >> sorteret i DatoTid DESC, det gør jeg sådan:
 >>
 >> SELECT * from kunder
 >> ORDER BY DatoTid DESC
 >>
 >> det virker også fint men hvad nu hvis jeg vil have en limit på 50 men det 
 >> skal være de 50 ældste og stadig sorteres i DESC?
 >>
 >> /HK
 >>
 >>
 >
 >
 
 Eller mere præcis
 
 SELECT * from kunder
 ORDER BY DatoTid DESC LIMIT 50
 
 
  
            
             |   |   
            
        
 
            
         
            Harald (23-01-2008) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-01-08 19:55 |  
  |   
            "Nikolaj Svendsen" <nes@logtech.dk> skrev i en meddelelse 
 news:47978b38$0$15007$ba624c82@nntp02.dk.telia.net...
 >
 > "Nikolaj Svendsen" <nes@logtech.dk> skrev i en meddelelse 
 > news:47978b17$0$15010$ba624c82@nntp02.dk.telia.net...
 >> Limit 50
 >>
 >> "Harald" <noname@nomail.dk> skrev i en meddelelse 
 >> news:47978ad1$0$90265$14726298@news.sunsite.dk...
 >>> Jeg bruger MySQL 4.1
 >>>
 >>> Har en tabel med et datotid felt "DatoTid", jeg vil hente alle poster 
 >>> sorteret i DatoTid DESC, det gør jeg sådan:
 >>>
 >>> SELECT * from kunder
 >>> ORDER BY DatoTid DESC
 >>>
 >>> det virker også fint men hvad nu hvis jeg vil have en limit på 50 men 
 >>> det skal være de 50 ældste og stadig sorteres i DESC?
 >>>
 >>> /HK
 >>>
 >>
 >
 > Eller mere præcis
 >
 > SELECT * from kunder
 > ORDER BY DatoTid DESC LIMIT 50
 
 Det giver mig de 50 nyeste, det jeg vil have er de 50 ældste.
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Peter Brodersen (23-01-2008) 
         
	
            | Kommentar Fra : Peter Brodersen | 
  Dato :  23-01-08 21:44 |  
  |   
            On Wed, 23 Jan 2008 19:43:27 +0100, "Harald" <noname@nomail.dk> wrote:
 
 >SELECT * from kunder
 >ORDER BY DatoTid DESC
 >
 >det virker også fint men hvad nu hvis jeg vil have en limit på 50 men det 
 >skal være de 50 ældste og stadig sorteres i DESC?
 
 ORDER BY DatoTid LIMIT 50
 
 Evt. explicit stigende:
 
 ORDER BY DatoTid ASC LIMIT 50
 
 Men de to udtryk er identiske.
 
 -- 
 - Peter Brodersen
   Kendt fra Internet
  
            
             |   |   
            
        
 
            
         
           Harald (23-01-2008) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-01-08 22:03 |  
  |   
            "Peter Brodersen" <usenet2007@ter.dk> skrev i en meddelelse 
 news:4797a71b$0$90265$14726298@news.sunsite.dk...
 > On Wed, 23 Jan 2008 19:43:27 +0100, "Harald" <noname@nomail.dk> wrote:
 >
 >>SELECT * from kunder
 >>ORDER BY DatoTid DESC
 >>
 >>det virker også fint men hvad nu hvis jeg vil have en limit på 50 men det
 >>skal være de 50 ældste og stadig sorteres i DESC?
 >
 > ORDER BY DatoTid LIMIT 50
 >
 > Evt. explicit stigende:
 >
 > ORDER BY DatoTid ASC LIMIT 50
 >
 > Men de to udtryk er identiske.
 
 Det jeg vil have er de 50 ældste sorteret så den nyeste af de 50 kommer 
 først.
 
 Dvs. hvis jeg f.eks. har datoer fra 1-70 hvor 70 er den nyeste så skal 
 resultatet blive:
 
 50
 49
 48
 47
 ..
 ..
 1
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
            Leonard (23-01-2008) 
         
	
            | Kommentar Fra : Leonard | 
  Dato :  23-01-08 22:10 |  
  |  
 
            On Wed, 23 Jan 2008 22:02:52 +0100, Harald wrote:
 > Dvs. hvis jeg f.eks. har datoer fra 1-70 hvor 70 er den nyeste så skal 
 > resultatet blive:
 Jeg er ikke en haj til MySQL, men kunne dette virke:
 SELECT felter, COUNT AS total FROM tabel ORDER BY felt DESC LIMIT
 total-50, 50
 -- 
 Leonard
 King Hauler sælges:  http://leonard.dk/tilsalg/kh.php
            
             |   |   
            
        
 
            
         
             Harald (23-01-2008) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-01-08 23:18 |  
  |   
            "Leonard" <piper28a@gmail.invalid> skrev i en meddelelse 
 news:a2x7mvyuega2.1w1jrluqg1ph7.dlg@40tude.net...
 > On Wed, 23 Jan 2008 22:02:52 +0100, Harald wrote:
 >
 >> Dvs. hvis jeg f.eks. har datoer fra 1-70 hvor 70 er den nyeste så skal
 >> resultatet blive:
 >
 > Jeg er ikke en haj til MySQL, men kunne dette virke:
 >
 > SELECT felter, COUNT AS total FROM tabel ORDER BY felt DESC LIMIT
 > total-50, 50
 
 Det gør det ikke:
 
 ERROR 1064: You have an error in your SQL syntax.  Check the manual that 
 corresponds to your MySQL server version for the right syntax to use near 
 'total -50, 50' at line 1
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
            Peter Brodersen (23-01-2008) 
         
	
            | Kommentar Fra : Peter Brodersen | 
  Dato :  23-01-08 22:32 |  
  |   
            On Wed, 23 Jan 2008 22:02:52 +0100, "Harald" <noname@nomail.dk> wrote:
 
 >Det jeg vil have er de 50 ældste sorteret så den nyeste af de 50 kommer 
 >først.
 
 ORDER kommer før LIMIT, men du kan evt. hente de 50 ældste først i en
 subselect, og så sortere det resultat efterfølgende:
 
 SELECT * FROM (SELECT * FROM kunder ORDER BY DatoTid ASC LIMIT 50) a
 ORDER BY DatoTid DESC
 
 Det kræver min. MySQL 4.1.
 
 -- 
 - Peter Brodersen
   Kendt fra Internet
  
            
             |   |   
            
        
 
            
         
             Harald (23-01-2008) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-01-08 23:23 |  
  |   
            "Peter Brodersen" <usenet2007@ter.dk> skrev i en meddelelse 
 news:4797b263$0$90269$14726298@news.sunsite.dk...
 > On Wed, 23 Jan 2008 22:02:52 +0100, "Harald" <noname@nomail.dk> wrote:
 >
 >>Det jeg vil have er de 50 ældste sorteret så den nyeste af de 50 kommer
 >>først.
 >
 > ORDER kommer før LIMIT, men du kan evt. hente de 50 ældste først i en
 > subselect, og så sortere det resultat efterfølgende:
 >
 > SELECT * FROM (SELECT * FROM kunder ORDER BY DatoTid ASC LIMIT 50) a
 > ORDER BY DatoTid DESC
 >
 > Det kræver min. MySQL 4.1.
 
 Beklager jeg huskede forkert det er 4.0.26 jeg benytter så ingen subselects.
 
 Men hvis det ikke kan lade sig gøre så kan jeg altid lave det i programmet.
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Thorbjørn Ravn Ander~ (23-01-2008) 
         
	
            | Kommentar Fra : Thorbjørn Ravn Ander~ | 
  Dato :  23-01-08 22:28 |  
  |   
            "Harald" <noname@nomail.dk> writes:
 
 >>>SELECT * from kunder
 >>>ORDER BY DatoTid DESC
 >>>
 >>>det virker også fint men hvad nu hvis jeg vil have en limit på 50 men det
 >>>skal være de 50 ældste og stadig sorteres i DESC?
 
 Undersøg om din MySQL understøtter subselects. 
 -- 
   Thorbjørn Ravn Andersen
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |