Der Gleichheitsoperator "=" in SQL
- Vorbereitungsskript
WARNINGS; SET SESSION sql_mode = 'ANSI,TRADITIONAL';
DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE ALPHABET ( ZEICHEN VARCHAR ( 255 ), VOKAL VARCHAR ( 255 ) );
INSERT INTO ALPHABET ( ZEICHEN, VOKAL ) VALUES ( 'A', 1 );
INSERT INTO ALPHABET ( ZEICHEN, VOKAL ) VALUES ( 'B', 0 );
INSERT INTO ALPHABET ( ZEICHEN, VOKAL ) VALUES ( 'C', 0 );
INSERT INTO ALPHABET ( ZEICHEN, VOKAL ) VALUES ( 'D', 0 );
INSERT INTO ALPHABET ( ZEICHEN, VOKAL ) VALUES ( 'E', 1 );
SELECT * FROM ALPHABET;
Der Vergleichsoperator »=« ergibt den Wert »1«, wenn seine Operandenausdrücke gleichwertig sind, und den Wert»0« sonst.
Der Vergleichsoperator »=« mit Literalen
Die folgenden Beispiele zeigen, daß im allgemein die Zahl 0 für „falsch“ steht, und jede andere Zahl (insbesondere 1) für „wahr“.
- Vergleichsoperator (MySQL)
SELECT 2+2;
+-----+
| 2+2 |
+-----+
| 4 |
+-----+SELECT 2=2;
+-----+
| 2=2 |
+-----+
| 1 |
+-----+SELECT 1=9;
+-----+
| 1=9 |
+-----+
| 0 |
+-----+SELECT 7=7;
+-----+
| 7=7 |
+-----+
| 1 |
+-----+SELECT 7=7=7;
+-------+
| 7=7=7 |
+-------+
| 0 |
+-------+SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE 1=1;
+---------+-------+
| ZEICHEN | VOKAL |
+---------+-------+
| A | 1 |
| B | 0 |
| C | 0 |
| D | 0 |
| E | 1 |
+---------+-------+SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE 1=2;
- (keine Ausgabe)
Der Vergleichsoperator »=« mit Spaltennamen und Literalen
SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE VOKAL;
+---------+-------+
| ZEICHEN | VOKAL |
+---------+-------+
| A | 1 |
| E | 1 |
+---------+-------+SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE VOKAL = 1;
+---------+-------+
| ZEICHEN | VOKAL |
+---------+-------+
| A | 1 |
| E | 1 |
+---------+-------+SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE VOKAL = 0;
+---------+-------+
| ZEICHEN | VOKAL |
+---------+-------+
| B | 0 |
| C | 0 |
| D | 0 |
+---------+-------+SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE ZEICHEN = 'A';
+---------+-------+
| ZEICHEN | VOKAL |
+---------+-------+
| A | 1 |
+---------+-------+SELECT ZEICHEN, VOKAL FROM ALPHABET WHERE ZEICHEN = 'B';
+---------+-------+
| ZEICHEN | VOKAL |
+---------+-------+
| B | 0 |
+---------+-------+mysql> set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> select '1.1a' = 1.1;
+--------------+
| '1.1a' = 1.1 |
+--------------+
| 1 |
+--------------+
1 row in set, 1 warning (0.00 sec)
mysql> select '1.1a' = '1.1';
+----------------+
| '1.1a' = '1.1' |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)select 2e0 = 1.99999999999999999999e0;