tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
319
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    proloser proloser ist offline Mitglied Brokat
    Registriert seit
    Apr 2004
    Beiträge
    468
    Hallo,

    ich möchte meine Ausgaben nur sortieren wenn folgende Faktoren vorhanden sind:

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    SELECT 
      *
    FROM 
      `table`
      
    ORDER BY    
     
      IF(
        `id` = '$submit_id',
        `sort` * 10, 
        `sort` * 1
      ) 
      
      DESC

    Es werden alle Datensätze ausgelesen (Faktor 1) - die mit einem Treffer jedoch ganz oben (Faktor 10)

    Nun zu meinem Problem:
    Ich möchte zudem noch, wenn ein eingegebener Text übereinstimmt der Faktor 5 verwendet wird.

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    ....
    ....
     
      IF(
        `text` = '$submit_text',
        `sort` * 5, 
        `sort` * 1
      )
     
      DESC
     
    ...
    ...

    Ich möchte also die zwei IF Abfragen zusammenfügen. In PHP würde es so aussehen:

    PHP-Code:
    if(id == submit_id) {
      
    sort 10
    } elseif(text == submit_text) {
      
    sort 5
    } else {
      
    sort 1


    Die Abfrage ist zwar unlogisch aber ich hab sie vereinfacht, damit es hoffentlich verständlich ist.

    Gruß proloser
    Geändert von proloser (23.08.10 um 19:32 Uhr)
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.501
    So müsste es gehen:
    Code SQL:
    1
    2
    3
    4
    5
    
    SELECT *
      FROM `table`
      ORDER BY IF(`id` = '$submit_id', 10, IF(`text` = '$submit_text', 5, 1))
      DESC
      ...
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    proloser proloser ist offline Mitglied Brokat
    Registriert seit
    Apr 2004
    Beiträge
    468
    Vielen Dank, ich habe inzwische noch etwas gefunden das funktioniert.

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    CASE
     
      WHEN
      THEN 
     
      WHEN
      THEN 
     
    ELSE
     
    END
     

  4. #4
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.501
    Wenn du es gerne so kompliziert magst, dann nimm deine Lösung. Ich würde immer in so einem Fall meine Lösung nehmen.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

Ähnliche Themen

  1. mysql abfrage -> nach datum sortieren
    Von Operator_Jon im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 19.09.11, 18:53
  2. MySQL-Abfrage nach 2 Kategorien sortieren
    Von smoothart im Forum PHP
    Antworten: 24
    Letzter Beitrag: 08.09.11, 11:16
  3. MySQL-Abfrage mehrfach sortieren
    Von styler2go im Forum PHP
    Antworten: 7
    Letzter Beitrag: 07.07.10, 21:35
  4. MySQL-Abfrage: Nach größter Zahl sortieren
    Von qsrs im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 16.10.07, 23:33
  5. MySQL Abfrage Sortieren
    Von mprs im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 17.06.05, 07:07