выберите, где столбец содержит подстроку со скобками и кавычками

#mysql #select

Вопрос:

как выбрать строки, в которых столбец story содержит <p class='dg'>
Я перепробовал все или почти все варианты с кавычками и экранированием,
например:

 $sq = "select * from arts where story like '%<p class='dg'>%' order by ind asc"         
$sq = "select * from arts where story like '%<p class="dg">%' order by ind asc";
 

Ответ №1:

Это похоже на PHP-код. Обратная косая черта является особенной в синтаксисе PHP, а также в синтаксисе MySQL. Чтобы получить буквальную обратную косую черту в строке, используйте двойную обратную косую черту:

 $sq = "select * from arts where story like '%<p class=\'dg\'>%' order by ind asc";
 

Альтернатива: В SQL строковые литералы позволяют паре символов кавычек становиться похожими на один буквальный символ кавычек. Таким образом, вы можете сделать следующее:

 $sq = "select * from arts where story like '%<p class=''dg''>%' order by ind asc";