webfreak: Exclusive or in SQL

Hallo

In einer Mysql-Abfrage möchte ich diejenigen Daten erhalten, die entweder die eine Bedingung erfüllen oder die andere. Aber nicht beide!
Eigennlich sollte es ja mit dem "exclusive or" gehen. Aber xor gibt ein Error.
Kann mir da jemand weiterhelfen, oder eine Lösung auf Umwegen präsentieren, da ich schon den schrecklichen Verdacht habe, dass das bei SQL gar nicht geht ?

  1. hi,

    Eigennlich sollte es ja mit dem "exclusive or" gehen. Aber xor gibt ein Error.

    unter http://www.mysql.de/doc/de/Logical_Operators.html werden nur NOT, AND und OR aufgeführt.

    aber man kann ein XOR natürlich durch kombination verschiedener ANDs und ORs nachbilden ;-)
    (ob das performance-mässig allerdings eine gute idee wäre, weiss ich nicht ...)

    gruss,
    wahsaga

  2. Hallo,

    In einer Mysql-Abfrage möchte ich diejenigen Daten erhalten, die entweder die eine Bedingung erfüllen oder die andere. Aber nicht beide!
    Eigennlich sollte es ja mit dem "exclusive or" gehen. Aber xor gibt ein Error.

    XOR gibt es erst seit MySQL 4.0.x.

    Versuche es ersatzweise so:

    A XOR B = (A OR B) AND NOT(A AND B)

    A XOR B = (A AND (NOT B)) OR (B AND (NOT A))

    MfG, Thomas