|
| MySQL - Find rækken før? Fra : Dude |
Dato : 11-10-07 09:39 |
|
Er der mon nogen som vil hjælpe mig, her:
Jeg har 1 information, men skal finde 2 resultater i MySQL-databasen.
Jeg bruger min information til at finde det ene resultat:
SELECT ...osv... WHERE info = 'information'
Og så får jeg resultat_1. Fint.
Men nu skal jeg så bruge rækken lige før resultat_1 - hvordan finder jeg
den?
-
Giver mit spørgsmål mon mening?
Mvh
john
| |
Peter Brodersen (11-10-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 11-10-07 13:12 |
|
On Thu, 11 Oct 2007 10:39:27 +0200, Dude <post@XxXx_mejlgade.dk>
wrote:
>SELECT ...osv... WHERE info = 'information'
>
>Og så får jeg resultat_1. Fint.
>
>Men nu skal jeg så bruge rækken lige før resultat_1 - hvordan finder jeg
>den?
Rækken "før" afhænger af hvordan, du sorterer dit indhold. Det kunne
være ud fra et id-nummer Hvis du fx trækker et id-nummer ud fra
ovenstående opslag, og vil have det højeste id-nummer, der ligger lige
før, kan du fx afvikle:
SELECT ... ... WHERE id < 432 ORDER BY id DESC LIMIT 1
Her er 432 for eksempel det id-nummer, du trak oprindeligt ud.
--
- Peter Brodersen
Kendt fra Internet
| |
Dude (11-10-2007)
| Kommentar Fra : Dude |
Dato : 11-10-07 15:15 |
|
Peter Brodersen wrote:
> Rækken "før" afhænger af hvordan, du sorterer dit indhold.
John:
Den er jeg med på.
Peter skrev:
Det kunne
> være ud fra et id-nummer Hvis du fx trækker et id-nummer ud fra
> ovenstående opslag, og vil have det højeste id-nummer, der ligger lige
> før, kan du fx afvikle:
>
> SELECT ... ... WHERE id < 432 ORDER BY id DESC LIMIT 1
>
> Her er 432 for eksempel det id-nummer, du trak oprindeligt ud.
John:
Men jeg sorterer ikke udfra tal. Jeg sorterer udfra en tekststreng.
Jeg tænkte om man på en nem måde kunne hente "row-1", når man henter
resultat_1.
Man kan jo altid bare tælle rækkerne, og så se hvilken række resultat_1
ligger i, og så hente række-1 bagefter.
Tænkte bare om der evt var en nemmere måde...?
Kh
John
| |
Michael Haase (11-10-2007)
| Kommentar Fra : Michael Haase |
Dato : 11-10-07 17:08 |
|
Dude skrev dette den 11-10-2007 16:14:
> Peter Brodersen wrote:
>
>> Rækken "før" afhænger af hvordan, du sorterer dit indhold.
>
> John:
> Den er jeg med på.
>
> Peter skrev:
> Det kunne
>> være ud fra et id-nummer Hvis du fx trækker et id-nummer ud fra
>> ovenstående opslag, og vil have det højeste id-nummer, der ligger lige
>> før, kan du fx afvikle:
>>
>> SELECT ... ... WHERE id < 432 ORDER BY id DESC LIMIT 1
>>
>> Her er 432 for eksempel det id-nummer, du trak oprindeligt ud.
>
>
> John:
> Men jeg sorterer ikke udfra tal. Jeg sorterer udfra en tekststreng.
> Jeg tænkte om man på en nem måde kunne hente "row-1", når man henter
> resultat_1.
>
> Man kan jo altid bare tælle rækkerne, og så se hvilken række resultat_1
> ligger i, og så hente række-1 bagefter.
> Tænkte bare om der evt var en nemmere måde...?
>
> Kh
> John
>
Prøv med:
select * from TABEL where
INFO = (select max(INFO) from TABEL
where
INFO < 'information')
order by info ASC
Hvis du så vil finde den næste række i stedet for, så skal du bruge
"Select min(info)" og INFO > 'information'
--
Michael Haase
| |
|
|