nächst höhere,niedrigere Zahl in SQL abfragen

Tabuk

Erfahrenes Mitglied
Hallo !
Gibt es in SQL eine Abfragemöglichkeit, um von einer aktuellen Zahl die nächst höhere bzw niedrigere Zahl zu erhalten. (Die Zahlenfolge ist aber nicht lückenlos!)
Beispiel:
DB_USER
1
2
4
8
...
Aktuelle Zahl ist 4
Das Ergebnis sollte jetzt z.B.: $row[0] = 2 und $row[1] = 8

MfG Tabuk
 
Das wäre ein Lösungsansatz. Geht aber bestimmt noch einfacher.
PHP:
$number = 4;
$m = $number;
$n = $number;
$count = 0;

// Niedrigere Zahlen
while($count == 0)
{
  $m--;
  $sql = "SELECT * FROM tabellenname WHERE zahl = $m";
  $result = mysql_query($sql);
  $count = mysql_num_rows($result);
  if($count > 0)  {
     $row = mysql_fetch_array($result);
  }
}

$count = 0;

// Höhere Zahlen
while($count == 0)
{
  $n++;
  $sql = "SELECT * FROM tabellenname WHERE zahl = $n";
  $result = mysql_query($sql);
  $count = mysql_num_rows($result);
  if($count > 0)  {
     $row = mysql_fetch_array($result);
  }
}
 
Zuletzt bearbeitet:
Es geht auch einfacher:
Code:
SELECT
        (SELECT `id` FROM `tabelle` WHERE `id` < 123 ORDER BY `id` DESC LIMIT 1) AS `next`,
        `id` AS `prev`
  FROM
        `tabelle`
  WHERE
        `id` > 123
  LIMIT
        1
Vielleicht geht es sogar noch einfacher.

Falls deine MySQL-Version noch keine Subqueries erlaubt, musst du beide Abfragen einzeln abschicken.
 
Zurück