Spezielle Sortierung in MySQL

JesusFreak777

Erfahrenes Mitglied
Hi ihr,

ich möchte Daten aus eine mysql datenbank holen,... mein aktueller abruf schaut so aus:

PHP:
    $sql = 'SELECT * FROM `robots` ORDER BY `prio` DESC, `id` ASC';

das heißt standardmäßig werden jetzt proiritäten bevorzugt und andernfalls geht es nach ID -> registrationsdatem...

jetzt möchte ich folgendes realisieren,... die roboter (die teile die eben in der datenbank registriert werden) sind ab tag x aufgenommen worden -> ein eingangsdatum wird in der spalte date (dd-mm-yyyy -> typ date [feld]) hinterlegt. abhänig zur priorität soll das dann realisiert werden.

wie kann ich in MySQL ausrechnen wiviele tage der Roboter da ist -> heute - date
und wie kann ich vom anzahl der tage die priorität darauf adieren -> tage + priorität

leider habe ich keinen plan wie ich in der abfrage rechnen kann :/ aber ich weiß das es geht...

letztlich will ich das er sortiert nach anzahl der anwesenden tage + priorität

Vielen Dank für eurer Hilfe
 
Datumsunterschiede in Tagen
SQL:
DATEDIFF(SYSDATE(), robots.date)

Und deine Priorität darauf addieren
SQL:
DATEDIFF(SYSDATE(), robots.date) + robots.prio

Und das ganez im ORDER BY

SQL:
...
ORDER BY
    DATEDIFF(SYSDATE(), robots.date) + robots.prio DESC,
    robots.id ASC
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

leider muss ich das Thema nochmal aufwühlen...

ich habe eine neues Projekt eine neue Tabelle aber das alte Problem...
wenn ich (Wie es auf dem Bild zu sehen ist) oben direkt in PHPMYADMIN meinen Request eingebe gibt er mit trotzdem keine richtige Reihenfolge aus...
auch im PHP ist die Sortierung falsch!

datediff.jpg

Ziel ist es, das mein SELECT nach Datum (edatum) Sortiert wird in Abhängigkeit zu prio (momentan alles auf 0, d.h. es sollte einfach nur nach Datum sortiert werden).

das einzigste was er macht ist, DATEDIFF und SYSDATE() rot markieren.

kann mir da jemand sagen was ich Falsch mache?

Vielen Dank

hier mein PHP SELECT:
PHP:
			$sql = '
			SELECT * FROM `cust_part` 
			WHERE `customer` = '.$_REQUEST["kdn"].' 
			ORDER BY DATEDIFF( SYSDATE( ) ,  `cust_part`.`edate` ) +  `cust_part`.`prio` ASC';
 

Neue Beiträge

Zurück