hallo,
bisher war ich immer der meinung, dass man einen \ (backslash) immer mit einem backslash davor maskieren muss. Aber in der where-Klausel mit like scheint das nicht so zu sein.
kann mir jemand folgendes Verhalten erklaeren:
mysql> desc tabOne;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| txt | varchar(50) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
mysql> select id,txt from tabOne where txt like 'test\\\\\\eins';
+----+------------+
| id | txt |
+----+------------+
| 4 | test\eins |
+----+------------+
mysql> select id,txt from tabOne where txt like 'test\\\\eins';
+----+------------+
| id | txt |
+----+------------+
| 4 | test\eins |
+----+------------+
1 row in set (0.00 sec)
mysql> select id,txt from tabOne where txt like 'test\\\\eins';
+----+-----------+
| id | txt |
+----+-----------+
| 2 | test\eins |
| 3 | test\eins |
+----+-----------+
mysql> select id,txt from tabOne where txt like 'test\\eins';
+----+----------+
| id | txt |
+----+----------+
| 1 | testeins |
+----+----------+
wenn ich stattdessen "=" anstatt "like" schreibe verhaelt es sich ganz normal (mit backslash maskiert durch einfachen backslash):
mysql> select id,txt from tabOne where txt='test\eins';
+----+-----------+
| id | txt |
+----+-----------+
| 2 | test\eins |
| 3 | test\eins |
+----+-----------+
koennte mir jemand sagen, wann ich wieviele backslashs zum maskieren brauche?
mfG,
steckl