[SQL] 어떻게 MySQL의에서 슬래시 (\)를 검색하려면? (\) 이스케이프 왜 요구되는 경우 (=)하지만처럼을 위해 필요하지?
SQL어떻게 MySQL의에서 슬래시 (\)를 검색하려면? (\) 이스케이프 왜 요구되는 경우 (=)하지만처럼을 위해 필요하지?
(DEMO는 여기)이 질의를 고려
(SELECT * FROM `titles` where title = 'test\\')
UNION ALL
(SELECT * FROM `titles` where title LIKE 'test\\\\')
산출:
| ID | TITLE |
--------------
| 1 | test\ |
| 1 | test\ |
왜에 필요한 여분의 (\)는 (=)하지만 대한 \\ 추가 (같은)이 필요하지 않습니다? 그 MySQL은 LIKE에 대한 논리적 (시험 \\) 다음 (테스트를 \\\\)를 사용하여 함께 (테스트 \) 이스케이프 분명히있다.
표 정보 :
CREATE TABLE IF NOT EXISTS `titles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Dumping data for table `titles`
--
INSERT INTO `titles` (`id`, `title`) VALUES
(1, 'test\\');
해결법
-
==============================
1.\ 기본적으로 LIKE에 이스케이프 문자로 작동합니다.
\ 기본적으로 LIKE에 이스케이프 문자로 작동합니다.
LIKE에 대한 매뉴얼에서 :
당신은 같이 다른 이스케이프 문자를 지정하여 변경할 수 있습니다 :
SELECT * FROM `titles` where title LIKE 'test\\' ESCAPE '|'
-
==============================
2.사실, 이전의 모든 대답은 어딘가에 엉망이되었다. 당신은 누구의 최상위 비트 폭발 약 1 백 슬래시 (\)를 검색하는 올바른 방법에 의해 재생 카 롤리 호 바스에 의해 제공된 링크에서 볼 수 있듯이 (\\\\) 한 번에 4 백 슬래시를 사용하는 것입니다.
사실, 이전의 모든 대답은 어딘가에 엉망이되었다. 당신은 누구의 최상위 비트 폭발 약 1 백 슬래시 (\)를 검색하는 올바른 방법에 의해 재생 카 롤리 호 바스에 의해 제공된 링크에서 볼 수 있듯이 (\\\\) 한 번에 4 백 슬래시를 사용하는 것입니다.
그건 그렇고, 내가 한 번에 두 가지를 사용하고 내가 팔을 사용했다 그 4를 표시했다가 단일 백 슬래시 위에 표시합니다.
-
==============================
3.LIKE 두 wildchar 문자 % 및 _를 사용할 수 있습니다.
LIKE 두 wildchar 문자 % 및 _를 사용할 수 있습니다.
\ %를, \ _ : 사용할 수있는 탈출, 이러한 문자를 일치시킬 수 있습니다. 이것은 또한 당신이 \ 일치 할 경우, 그것은뿐만 아니라 이스케이프한다는 것을 의미한다.
이 모든 매뉴얼에 설명되어 있습니다.
-
==============================
4.텍스트 필드 내에서 \를 찾는 나는 \ 두 번, 마지막에 그렇지 않으면 %가 발견 된 탈출했다 :
텍스트 필드 내에서 \를 찾는 나는 \ 두 번, 마지막에 그렇지 않으면 %가 발견 된 탈출했다 :
SELECT * FROM `table` where `field` LIKE '%\\\%';
-
==============================
5.당신은 (\ ') (의 데이터베이스 열 테스트 \)에서'제거하고 apostrophy로 교체하고 싶었다면 (시험의) 당신은 다음 쿼리를 사용할 수 있습니다.
당신은 (\ ') (의 데이터베이스 열 테스트 \)에서'제거하고 apostrophy로 교체하고 싶었다면 (시험의) 당신은 다음 쿼리를 사용할 수 있습니다.
SELECT replace(column_name, "\\'", "'") FROM table where column_name LIKE "%\\\%";
from https://stackoverflow.com/questions/14926386/how-to-search-for-slash-in-mysql-and-why-escaping-not-required-for-wher by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 분할 다중 행으로 SQL 열의 값을 구분 (0) | 2020.04.15 |
---|---|
[SQL] 2 개 날짜 매개 변수를 포함하는 가장 쉬운 사이의 날짜와 임시 테이블을 채우는 방법 및 (0) | 2020.04.15 |
[SQL] 오라클의 CLOB 컬럼을 조회하는 방법 (0) | 2020.04.15 |
[SQL] 왜 SQL에는 제품 집계 함수가 없다? (0) | 2020.04.15 |
[SQL] 어떻게 PostgreSQL의 트리거에서 이메일을 보낼 수 있습니까? (0) | 2020.04.15 |