반응형
데이터베이스 MySQL에서 LIKE 연산자를 사용하여 HTML 검색
데이터베이스에 html을 저장했습니다.다음은 예를 제시하겠습니다.
ID | Data
1 | <a href=\"link\" class=\"someclass\" id=\"id_10923074\"><h3 class=\"class1 class2\"><\/h3><br \/><div class=\"clearfix\"><\/div><\/a>
2 | <a href=\"lin2\" class=\"someclass\" id=\"id_10923075\"><h3 class=\"class1 class2\">some text<\/h3><br \/><div class=\"clearfix\"><\/div><\/a>
이제 h3(행 1)에 텍스트가 포함되지 않은 비활성 레코드를 쿼리합니다.
나는 많은 질문을 시도했지만, 일부는 다음과 같이 말했다.
SELECT `mytable`.* FROM `mytable` WHERE (Data LIKE '%<h3 class=\"class1 class2\"><\/h3>%')
SELECT `mytable`.* FROM `mytable` WHERE (Data LIKE '%h3 class="class1 class2"></h3%')
SELECT `mytable`.* FROM `mytable` WHERE (Data LIKE '"%class1 class2%"')
SELECT `mytable`.* FROM `mytable` WHERE (Data LIKE '%<h3 class=\"class1 class2\">%')
내가 뭘 놓쳤지?나는 여기서 많은 질문을 확인했지만 해결책을 찾을 수 없었다.
감사해요.
코드가 예상대로 작동하고 있습니다.다음 내용을 참조하십시오.
SELECT * FROM `mytable` WHERE (Data LIKE '%<h3 class=\"class1 class2\"><\/h3>%')
당신의 문제는 아마 당신의 견적에 있을 것입니다.백슬래시를 회피하고 있는 것을 확인합니다(\
)와 따옴표("
PHP 코드에 올바르게 입력해 주세요.
솔루션 검색:
따라서 백슬래시만 이중으로 이스케이프하는 것이 요령입니다. 현 이스케이프는 단일 이스케이프만 필요합니다.
예를들면
The single quote ' only needs escaping once LIKE '%\'%'
But to query backslash \ you need to double escape to LIKE '%\\\\%'
If you wanted to query backslash+singlequote \' then LIKE '%\\\\\'%' (with 5 backslashes)
설명 출처 발췌:
MySQL은 문자열에서 C 이스케이프 구문(예를 들어 "\n"을 사용하여 줄 바꿈 문자를 나타냄)을 사용하므로 LIKE 문자열에서 사용하는 "\"을 두 배로 해야 합니다.예를 들어 "\n"을 검색하려면 "\n"으로 지정합니다."\"을 검색하려면 "\"로 지정합니다. 이는 패턴 일치 시 파서에 의해 백슬래시가 한 번 삭제되고 단일 백슬래시가 일치하기 때문입니다.
올바른 쿼리:
SELECT * FROM `mytable` WHERE (Data LIKE '%<h3 class=\\\\"class1 class2\\\\"><\\\\/h3>%')
행을 찾으려면Data
적어도 1개는 가지고 있다<h3>
(다음과 같은 속성 유무에 관계없이)class=
)이전에 텍스트가 없었습니다.</h3>
:
WHERE Data REGEXP '<h3[^>]*></h3>'
언급URL : https://stackoverflow.com/questions/48446807/search-html-using-like-operator-in-database-mysql
반응형
'programing' 카테고리의 다른 글
Java 표준 "null 또는 equal" 정적 방식이 있습니까? (0) | 2022.10.22 |
---|---|
MySQL 데이터베이스를 버전 관리 하에 두시겠습니까? (0) | 2022.10.22 |
PHP 변수 보간 vs 연결 (0) | 2022.10.22 |
MySQL 개선 문제(innodb_log_file_size) (0) | 2022.10.12 |
장소와 보유 장소 (0) | 2022.10.12 |