Announcement

Collapse
No announcement yet.

$variable+1 und $variable-1

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • $variable+1 und $variable-1

    Hallo,

    ich habe mir eine sehr simple Navigation gestaltet mit welcher ich problemlos zwischen den einzelnen Datensätzen hin und her "switchen" kann. Dies habe ich mit den zwei Variablen realisiert, welche ich in die SELECT-Querys mittels WHERE id='".$navigo."' oder id='".$naviback."' eingesetzt habe. Nun geschieht es aber das man in einem Query auf kein Ergebnis stößt da eventuell ein Datensatz gelöscht worden ist, selbstverständlich spuckt mir die Navigation dann kein weiteres Ziel mehr aus und ich bleibe auf dem Trockenen sitzen. Wie bringe ich der Variable und dem Query bei zur nächstmöglichen ID zu springen?

  • #2
    Hallo,
    das Problem kann auf mindestens 2 verschiedenen Wegen gelöst werden.
    <br>
    Variante 1: SELECT TOP 1 sucht über die WHERE-Einschränkung den nächsten größeren Wert.
    <br>
    Variante 2: Ein Sub-SELECT sucht über MIN(Primärschlüsselwert) den nächsten größeren Wert.
    <code>
    DECLARE @navigo INT;
    SET @navigo = 10;
    <br>
    -- Variante 1: TOP 1 sucht den nächsten größeren Wert
    SELECT TOP 1
    id, wert
    FROM
    dbo.Test
    WHERE
    id > @navigo;
    <br>
    -- Variante 2: MIN(id) liefert den nächsten größeren Wert zurück
    SELECT
    id, wert
    FROM
    dbo.Test
    WHERE
    id = (SELECT MIN(id) FROM dbo.Test WHERE id > @navigo);
    </code>
    Bei der Rückwärtssuche dreht die WHERE-Einschränkung die Suchrichtung um, indem über < nach dem ersten kleineren Wert gesucht wird

    Comment

    Working...
    X