24.03.2016 11:04
У меня в таблице есть записи
Цитата:
......border=\"0\">......
делаю с разбегу
SQL код:
 select template from vbtemplate where template like '%border=\\%'; 
Цитата:
Empty set (0.01 sec)
есть идеи, где накосячил? нужно выбрать именно те строки, которые содержат то, что между точками.
24.03.2016 11:10
SQL код:
select template from vbtemplate where instr(template,"border=\\")!=0; 
работает, но это не то, хочется разобраться, почему первый вариант не работает.
24.03.2016 11:15
заработало со сменой экранирующего символа
SQL код:
select template from vbtemplate where template like "%border=\\%" escape '|'; 
понимания, почему так работает, нет.
24.03.2016 16:59
там двойное экранирование нужно. должно сработать вот так:
SQL код:
select template from vbtemplate where template like '%border=\\\\%'; 
из оф. доки:
Цитата:
Because MySQL uses C escape syntax in strings (for example, “\n” to represent a newline character), you must double any “\” that you use in LIKE strings. For example, to search for “\n”, specify it as “\\n”. To search for “\”, specify it as “\\\\”; this is because the backslashes are stripped once by the parser and again when the pattern match is made, leaving a single backslash to be matched against.
Часовой пояс GMT +3, время: 08:26.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.