|
| Hvordan får man nogle bestemte ord først i~ Fra : EnjoyNews |
Dato : 20-01-06 16:02 |
|
Hej NG
Jeg har været ude for at skulle have et bestemt ord sidst i en MySQL liste,
og har lavet det sådan her:
SELECT * from Kategori ORDER BY case when Subkategori = 'Andet' then 1 else
0 end, Subkategori
Dette virker fint, og alle andre ord end 'Andet' bliver sat i alfabetisk
orden først, og Andet kommer så til sidst.
MEN nu har jeg brug for at have flere ord sat ind i bestemt rækkefølge.
Altså ex. at 'ord 1' skal komme først, 'ord 2' kommer nummer 2 og 'ord 3'
som nummer 3. Derefter skal alle andre ord bare i alfabetisk orden.
Med et enkelt ord man vil have først laves det jo så bare sådan her.
SELECT * from Kategori ORDER BY case when Subkategori = 'ord 1' then 0 else
1 end, Subkategori
Men jeg kan ikke få flere ord med i.
Jeg har prøvet med
SELECT * from Kategori ORDER BY case when Subkategori = 'ord 1' then 0 end,
case when Subkategori = 'ord 2' then 1 end, Subkategori
Men det virker ikke ?
Jeg har også prøvet med
SELECT * from Kategori ORDER BY case when Subkategori = 'ord 1' then 0 else
case when Subkategori = 'ord 2' then 1 end, Subkategori
Det virker heller ikke. Og jeg har prøver på flere andre måder uden held.
Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
vh
Michael
| |
Peter Brodersen (20-01-2006)
| Kommentar Fra : Peter Brodersen |
Dato : 20-01-06 17:20 |
|
On Fri, 20 Jan 2006 16:01:47 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
wrote:
>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
Først og fremmest har det ikke noget med PHP at gøre, så der er større
chance for held i nyhedsgruppen dk.edb.database
Derudover: Det er måske lettest for dig blot at bruge funktionen
FIELD():
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
==
FIELD(str,str1,str2,str3,...)
Returns the index (position) of str in the str1, str2, str3, ... list.
Returns 0 if str is not found.
==
Så kan du fx lave:
... ORDER BY FIELD(Subkategori,'ord 1','ord 2','ord 3'), Subkategori
--
- Peter Brodersen
Find dig selv: http://map.ter.dk/
| |
EnjoyNews (21-01-2006)
| Kommentar Fra : EnjoyNews |
Dato : 21-01-06 14:12 |
|
"Peter Brodersen" <usenet2006@ter.dk> skrev i en meddelelse
news:dqr2le$nia$3@news.klen.dk...
> On Fri, 20 Jan 2006 16:01:47 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
> wrote:
>
> >Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
>
> Først og fremmest har det ikke noget med PHP at gøre, så der er større
> chance for held i nyhedsgruppen dk.edb.database
?? Hvorfor har det ikke noget med PHP at gøre.
Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver da
lavet i PHP.
Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
>
> Derudover: Det er måske lettest for dig blot at bruge funktionen
> FIELD():
> http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
>
>
> Så kan du fx lave:
>
> .. ORDER BY FIELD(Subkategori,'ord 1','ord 2','ord 3'), Subkategori
Og så tusind tak for denne info. Jeg kendte ikke denne kommando, men den
virker og det var lige hvad jeg skulle bruge.
| |
Bent Stigsen (22-01-2006)
| Kommentar Fra : Bent Stigsen |
Dato : 22-01-06 04:25 |
|
EnjoyNews wrote:
> "Peter Brodersen" <usenet2006@ter.dk> skrev i en meddelelse
> news:dqr2le$nia$3@news.klen.dk...
>
>>On Fri, 20 Jan 2006 16:01:47 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
>>wrote:
>>
>>>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
>>
>>Først og fremmest har det ikke noget med PHP at gøre, så der er større
>>chance for held i nyhedsgruppen dk.edb.database
>
> ?? Hvorfor har det ikke noget med PHP at gøre.
> Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver da
> lavet i PHP.
> Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
[snip]
Peter gav dig høfligt et godt råd til dit eget bedste. Et tak ville
have været bedre, end at prøve at retfærdiggøre din egen fejl.
Du burde egentlig ikke være i tvivl om at det er rigtigt, at det slet
ikke har noget med PHP at gøre. I dit oprindelige indlæg havde du et
sql problem som du præsenterede uden overhovedet at nævne PHP,
refererede specifikt til "den måde", og sql-svaret du fik af Peter
løste tilsyneladende også dit problem.
Hvis vi slækker på "har at gøre med", så har dit spørgsmål ligeså
meget "at gøre med" c, c++, perl eller hvilket som helst andet sprog,
som giver mulighed for database adgang. Men rådet ville stadig være
det samme, find den gruppe spørgsmålet er tættest relateret til.
/Bent
| |
EnjoyNews (23-01-2006)
| Kommentar Fra : EnjoyNews |
Dato : 23-01-06 01:12 |
|
> >>
> >>>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
> >>
> >>Først og fremmest har det ikke noget med PHP at gøre, så der er større
> >>chance for held i nyhedsgruppen dk.edb.database
> >
> > ?? Hvorfor har det ikke noget med PHP at gøre.
> > Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver
da
> > lavet i PHP.
> > Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
> [snip]
>
> Peter gav dig høfligt et godt råd til dit eget bedste. Et tak ville
> have været bedre, end at prøve at retfærdiggøre din egen fejl.
jeg skrev da også pænt tak for hans hjælp, med en fin smiley bagefter.
>
> Du burde egentlig ikke være i tvivl om at det er rigtigt, at det slet
> ikke har noget med PHP at gøre. I dit oprindelige indlæg havde du et
> sql problem som du præsenterede uden overhovedet at nævne PHP,
> refererede specifikt til "den måde", og sql-svaret du fik af Peter
> løste tilsyneladende også dit problem.
>
> Hvis vi slækker på "har at gøre med", så har dit spørgsmål ligeså
> meget "at gøre med" c, c++, perl eller hvilket som helst andet sprog,
> som giver mulighed for database adgang. Men rådet ville stadig være
> det samme, find den gruppe spørgsmålet er tættest relateret til.
>
> /Bent
Undskyld men jeg tror vi går forbi hinanden.
Jeg spurgte hvorfor det ikke var det rigtige sted, så jeg kunne være bedre
til at ligge det rigtigt næste gang.
Jeg forstår stadig ikke hvorfor, så hvis jeg skal have en mulighed for at
ligge mine spørgsmål rigtigt i fremtiden, bliver jeg altså nødt til at
spørge igen.
Jeg har lavet min side i PHP, og MySQL databaser er da en del af PHP eller ?
Selvom jeg måske har misforstået det, og disse databaser også bruger af
andre sprog, så er min side jo lavet med PHP, og jeg skulle derfor bruge
hjælp til hvordan man gjorde det i PHP sprog. Derfor spurgte jeg i en PHP
nyhedgruppe. Hvordan kan det være forkert ?
Jeg spurgte jo specifikt til en linie i mit script som jeg mener er PHP
sprog, nemlig
SELECT * from Kategori ORDER BY case when Subkategori = 'Andet' then 1 else
0 end, Subkategori
Dette bruger man da ikke i andre sprog eller er jeg forkert på den ?
Hvis jeg spurgte i en database gruppe var det jo ikke sikkert at jeg fik et
svar tilbage om hvordan man gjorde i PHP, men i perl måske. Og det kan jeg
jo ikke bruge.
Og selvom jeg skrev at det skulle være i PHP, giver det da mest mening at
folk i en PHP gruppe er bedre til PHP sprog end folk i en general database
gruppe. ?
I hvertfald, så spørger jeg fordi jeg stadig ikke kan se hvorfor mit indlæg
ligger i en forkert gruppe, og jeg bliver jo nødt til at vide hvorfor så jeg
kan lære af det.
Så der er og var intet ond i mit svar, og jeg skrev da også pænt tak for
hans hjælp, med en fin smiley bagefter.
| |
Benny Nissen (23-01-2006)
| Kommentar Fra : Benny Nissen |
Dato : 23-01-06 01:20 |
|
EnjoyNews wrote:
> Jeg spurgte jo specifikt til en linie i mit script som jeg mener er PHP
> sprog, nemlig
> SELECT * from Kategori ORDER BY case when Subkategori = 'Andet' then 1 else
> 0 end, Subkategori
> Dette bruger man da ikke i andre sprog eller er jeg forkert på den ?
Ja, du er forkert på den.
Ovenstående linie er SQL og har ikke speficikt noget med PHP at gøre.
> Hvis jeg spurgte i en database gruppe var det jo ikke sikkert at jeg fik et
> svar tilbage om hvordan man gjorde i PHP, men i perl måske. Og det kan jeg
> jo ikke bruge.
Jo. SQL-sproget er det sammen unaset om du bruger PHP, ASP. Perl eller
ligen.
> Og selvom jeg skrev at det skulle være i PHP, giver det da mest mening at
> folk i en PHP gruppe er bedre til PHP sprog end folk i en general database
> gruppe. ?
Nej, hvis du skal have hjælp til databaser er det da smartest at spørge
i gruppen om databaser.
> I hvertfald, så spørger jeg fordi jeg stadig ikke kan se hvorfor mit indlæg
> ligger i en forkert gruppe, og jeg bliver jo nødt til at vide hvorfor så jeg
> kan lære af det.
Håber du har fået lidt ud af ovenstående.
--
Benny Nissen
| |
Bent Stigsen (23-01-2006)
| Kommentar Fra : Bent Stigsen |
Dato : 23-01-06 07:51 |
|
EnjoyNews wrote:
>>>>>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
>>>>
>>>>Først og fremmest har det ikke noget med PHP at gøre, så der er større
>>>>chance for held i nyhedsgruppen dk.edb.database
>>>
>>>?? Hvorfor har det ikke noget med PHP at gøre.
>>>Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver da
>>>lavet i PHP.
>>>Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
>>
>>[snip]
>>
>>Peter gav dig høfligt et godt råd til dit eget bedste. Et tak ville
>>have været bedre, end at prøve at retfærdiggøre din egen fejl.
>
> jeg skrev da også pænt tak for hans hjælp, med en fin smiley bagefter.
Jeg er også sikker på at du blev glad for hans hjælp, men du virkede
og virker stadig, ret uvillig til at acceptere, at der er et andet
sted, hvor dit spørgsmål havde været mere passende og bedre for din
egen og andres skyld.
Det er ikke altid lige nemt at have overblikket over hvordan tingene
hænger sammen indenfor edb, med mindre det ligefrem er ens arbejde,
uddannelse eller at man virkelig har brugt megen tid på det. Og selv
garvede hunde på ukendt grund, går forkert en gang imellem. Det er
også derfor dem der skulle komme til at poste i en forkert gruppe,
enten høfligt bliver ignoreret eller får en høflig henvisning til at
starte med. Og så er det sådan set bare at acceptere det. Du kan
insistere på at stille dine spørgsmål der hvor du lige synes og mener,
men til hvad nytte hvis der er ingen der ønsker eller kan svare på
det, der hvor *du* mener det er det rigtige sted.
[snip]
> Undskyld men jeg tror vi går forbi hinanden.
> Jeg spurgte hvorfor det ikke var det rigtige sted, så jeg kunne være bedre
> til at ligge det rigtigt næste gang.
> Jeg forstår stadig ikke hvorfor, så hvis jeg skal have en mulighed for at
> ligge mine spørgsmål rigtigt i fremtiden, bliver jeg altså nødt til at
> spørge igen.
Ærlig talt gider jeg ikke tage den dans du har gang i.
Du fik et råd.
Du ved det er en database du har fat i.
Du ved PHP's mysql_query bruges til "det" (dit sql spørgsmål).
Du ved at hvad der følger efter "bliver da lavet i PHP"
Så er du også fuldt ud i stand til at følge rådet. Alt hvad angår
"det", hører til i "dk.edb.database" (eller evt. alternativer som
alt.php.sql, comp.databases.mysql)
End of story.
/Bent
[snip]
| |
|
|