bal: IN - Mit Platzhalter?

Hallo, kann man wenn man in der WHERE Abfrage ein IN verwendet keine Platzhalter verwenden? Geht das bei LIKE?

Also wenn ich beispielsweise sowas abfragen will und nur die ersten und letzten zwei stellen der id beachtet werden sollen. Wie mach ich dass am besten? Weil so funktionierts nicht:

SELECT name FROM tabelle WHERE id IN ('12%23', '23%31')

  1. Hello,

    SELECT name FROM tabelle WHERE id IN ('12%23', '23%31')

    so definitiv nicht. IN unterstützt nur eine feste Liste mit Werten, auf die geprüft wird. Was du machen kannst, sofern deine Datenbank das mitspielt, ist ein Subselect, das entsprechende Ergebnisse bringt:
    SELECT name
    FROM tabelle
    WHERE id IN (
       SELECT id FROM tabelle WHERE id LIKE '12%23' OR id LIKE '23%31'
    )

    MfG
    Rouven

    --
    -------------------
    Death is nature's way of telling you to slow down.
    1. Hi,

      SELECT name FROM tabelle WHERE id IN ('12%23', '23%31')
      so definitiv nicht. IN unterstützt nur eine feste Liste mit Werten, auf die geprüft wird. Was du machen kannst, sofern deine Datenbank das mitspielt, ist ein Subselect, das entsprechende Ergebnisse bringt:
      SELECT name
      FROM tabelle
      WHERE id IN (
         SELECT id FROM tabelle WHERE id LIKE '12%23' OR id LIKE '23%31'
      )

      Wenn ich das richtig sehe ist das das gleiche wie:
      SELECT name
      FROM tabelle
      WHERE id LIKE '12%23' OR id LIKE '23%31';

      Das Subselect ist also in diesem Besipiel ueberfluessig.

      mfG,
      steckl

      1. Hello,

        Das Subselect ist also in diesem Besipiel ueberfluessig.

        für das vorliegende Beispiel ist das korrekt. Eigentlich eine gute Frage, warum das IN da überhaupt ist...

        MfG
        Rouven

        --
        -------------------
        Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)