Регулярный поиск строк с обратным слешем

denisimus77

Новичок
Регулярный поиск строк с обратным слешем

Запускаю поиск по базе, в таблице для поиска в ячейке name есть записи 'sdfs te\"st gsfdg'

$search_sl='te\"st';

только часть запроса

WHERE c.name LIKE '%$search_sl%'
или
WHERE c.name REGEXP '($search_sl)+'

Совпадений не находит. Проблема в обратном слеше. Запрос SQL рабочий, другие варианты поиска без слеша в запросе работают. Именно не могу найти те записи, которые в БД содержат обратные слеши.
Пробовал экранировать обратный слеш не помогает.
$search_sl='te\\"st';
и так
$search_sl='te\\\"st';

Подскажите пожалуйста, кто знает, как для поиска текста с обратным слешем в БД правильно написать регулярное выражение?
Может слеш заменить на его код ASCII, не знаю его значение.
 

Сергей123

Новичок
Для LIKE надо помнить, что
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).
 

Фанат

oncle terrible
Команда форума
плюс к тому надо помнить, что

echo $search_sl='te\\st';
echo addslashes($search_sl='te\st');
 
Сверху