SQL- LIMIT Befehlt, aber auf jeden fall ein bestimmter eintrag dabei

resoucer

Gesperrt
ID: 77379
L
20 April 2006
2.846
109
Hi, wollte mal fragen wie ich in einer SQL ein LIMIT rein setzten kann, wo in den treffern aber auf jedenfall drin sein soll

kategorie=$_GET['kategorie']

also wenn ich z.b. 50 eintragungen in der DB habe und nen LIMIT bei 10 habe
aber ich bei den 10 treffern auf jedenfall "xyz" drin haben will.

Wie muss ich de SQL umformatieren?

PHP:
SELECT id from kategorien where [auf jedenfall kategorie=$_GET['kategorie'] ist und dann die anderen ] LIMIT 10

also so eine art prioritäten vergeben
 
Code:
SELECT kategorie FROM xyz ORDER BY (kategorie  = "$_GET['kategorie']") DESC LIMIT 3

Sowas in der Richtung.
(kategorie = "$_GET['kategorie']") ergibt 1 oder 0, und wenn du danach sortierst, hast du die Einträge, bei denen es 1 ergibt in jedem Fall drin (es sei denn, das sind schon mehr als das Limit erlaubt) und der Rest kommt eben danach, soweit das Limit es zulässt.
 
Bei mir gings, habs getestet (nicht exakt der Code, den ich dir hingeschrieben hab). Ob es die sauberste Lösung ist, ist natürlich eine andere Frage.

Was klappt denn nicht, bzw. wie sieht dein Query aus und was hast du bekommen?
 
Talion schrieb:
Bei mir gings, habs getestet (nicht exakt der Code, den ich dir hingeschrieben hab). Ob es die sauberste Lösung ist, ist natürlich eine andere Frage.

Was klappt denn nicht, bzw. wie sieht dein Query aus und was hast du bekommen?

also erhrlich gesagt passier überhaupt nix !

sql
PHP:
SELECT hauptkategorie FROM artikel_kats WHERE hauptkategorie !="Gewinnspiele" ORDER BY (hauptkategorie = "kidsroom.csv"),hauptkategorie asc Limit 51

also bei den 51 treffern ist kein kidsroom.csv dabei !
 
Dir fehlt da ein DESC, oder aus dem gleich muss ein ungleich werden. 0 kommt vor 1, daher wird mit ASC das, was du in jedem Fall drin haben willst, ganz ans Ende gepackt, fällt also durchs Limit raus.
 
Talion schrieb:
Dir fehlt da ein DESC, oder aus dem gleich muss ein ungleich werden. 0 kommt vor 1, daher wird mit ASC das, was du in jedem Fall drin haben willst, ganz ans Ende gepackt, fällt also durchs Limit raus.
wenn ich das anders also mit DESC sortiere dann fängt der mit Z an, der soll aber mit A anfangen
 
Dann nimm für (hauptkategorie = "kidsroom.csv") ein ungleich, damit kehrt sich das ebenfalls um.