내 쿼리는 SELECT * FROM PMT_PROJECT WHERE PROJECT_CODE LIKE '%A3\7\2011%' AND COMPANY_ID=14
입니다. PROJECT_CODE 열에 정확한 일치 레코드가 포함되어 있지만 위의 쿼리에서 MySql db에서 레코드를 가져올 수 없습니다. 위의 쿼리에서 실수 나 위의 레코드를 가져 오는 방법을 제안하면 \
특수 문자에 관한 구문을 수정하십시오.mysql과 마찬가지로 특수 문자
답변
mysql에서는 백 슬래시가 어렵습니다. ,
INSERT INTO mytable (field1) VALUES ('ASDFA3\\7\\2011QWER');
그러나 LIKE
명령으로, 이스케이프는 문자 그대로 표현하는 데 필요한 : 난 그냥 당신이 하나의 탈출 (두 개의 백 슬래시)를 수행 mysql 클라이언트에서 직접 테스트를 실행하고, 그 필드를 추가 발견 그래서 당신은 문 (네 개의 백 슬래시)를 두 번 탈출해야합니다
SELECT * FROM mytable WHERE field1 LIKE '%A3\\\\7\\\\2011%';
는 응용 프로그램 계층에 대한 그 이스케이프 필요에 추가하고 꽤 혼란 스러울 수 있습니다.
SET SESSION sql_mode='NO_BACKSLASH_ESCAPES';
SELECT * FROM mytable WHERE field1 LIKE '%A3\7\2011%';
EDIT (감사 lucek) : 또 다른 대안은 'NO_BACKSLASH_ESCAPES'모드를 사용하는 것입니다
SELECT * FROM mytable WHERE field1 LIKE '%A3_7_2011%';
:
또는를 보존하는 대안은 단일 문자 와일드 카드를 사용하는 것입니다 현재 sql_mode :
SET @temp_sql_mode = @@SESSION.sql_mode;
SET SESSION sql_mode = CONCAT_WS(',', @@SESSION.sql_mode, 'NO_BACKSLASH_ESCAPES');
-- YOUR_SELECT_GOES_HERE;
SET SESSION sql_mode = @temp_sql_mode;
백 슬래시는 MySQL의 표준 이스케이프 문자입니다.
SELECT *
FROM PMT_PROJECT
WHERE PROJECT_CODE LIKE '%A3\7\2011%' ESCAPE '|' AND COMPANY_ID=14
의
"ESCAPE '문자' '문서를 찾으려고했으나 아무 것도 생각 나지 않았습니다. ESCAPE가 설명 된 MySQL 문서를 가르쳐 주시겠습니까? – matt
http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html –
- 1. MySQL과 마찬가지로 MongoDB에서 캐싱이 중요합니까?
- 2. 특수 문자
- 3. 특수 문자
- 4. 특수 문자
- 5. 문자 배열에서 특수 문자 식별
- 6. URL의 특수 문자
- 7. WCF REST 특수 문자
- 8. 오라클의 utl_match 특수 문자
- 9. xml에 특수 문자 인코딩
- 10. strlen 및 특수 문자
- 11. ajax 특수 문자 게시
- 12. 특수 문자 유효성 확인
- 13. XPath 및 특수 문자
- 14. 데이터베이스에 특수 문자 저장
- 15. 라텍스의 특수 문자
- 16. 지구 밖으로 특수 문자
- 17. 특수 문자 jquery load
- 18. SED 및 특수 문자
- 19. SQLite DB의 특수 문자
- 20. .NET C# 특수 문자
- 21. 특수 문자 인코딩
- 22. Google에서 특수 문자 찾기
- 23. 레일에서 특수 문자 변환
- 24. xslt 문자열의 특수 문자
- 25. web.config의 특수 문자
- 26. UNIX의 특수 문자
- 27. Solr 필터의 특수 문자
- 28. ASP.NET 특수 문자 문제
- 29. 이진 파일 특수 문자
- 30. 특수 문자 부합하지 않음
중복 가능성 [MySQL의에서 특수 문자를 탈출하는 방법 (http://stackoverflow.com/questions/ : 말 그대로 백 슬래시 문자를 사용하려는 경우, 당신은이 쿼리에 대한 또 다른 이스케이프 문자를 정의해야 881194/how-to-escape-special-character-in-mysql) – ajreal
내 쿼리가 레코드를 가져올 수없는 오류를 발생시키지 않고 위 변경이 % A3/7/2011 % '와 같다고 가정하고 레코드가 있으면 내 db 안에 그때 그것은 레코드를 가져올 것입니다 – subodh