MySQL глючит where ... like '...'

MLT-Coder

Новичок
MySQL глючит where ... like '...'

есть таблица:
id - name
---------------------
1 - %
2 - \%
3 - \\%
4 - q%q
5 - q\%q
6 - q\\%q
7 - q\q
8 - q\1q
9 - q11q

select * from qwe where name like 'q\%q'
возвращает строку 4 - это вроде верно

select * from qwe where name like 'q\\%q'
возвращает строку 4 - хотя должен 5,6,7,8

select * from qwe where name like 'q\\\%q'
возвращает строки 5,6,7,8 - хотя должен 5

я ничего не понимаю?

такое ощущение что \% и \\% обозначает %
а \\\% обозначает \....
 

Romantik

TeaM PHPClub
как то была большая дискуссия на эту тему. Попробуй поискать, хотя не уверен по каким ключевым словам =)
 

vovik

Новичок
Как насчет заглянуть в мануал ?

Note: Because MySQL uses the C escape syntax in strings (for example, ‘\n’ to represent newline), you must double any ‘\’ that you use in your LIKE strings. For example, to search for ‘\n’, specify it as ‘\\n’. To search for ‘\’, specify it as ‘\\\\’ (the backslashes are stripped once by the parser and another time when the pattern match is done, leaving a single backslash to be matched).
 

MLT-Coder

Новичок
в остальных базах данных (pg, mssql, sqlite, oracle) тежи правила работы с LIKE?
 
Сверху