2010-08-17 9 views

답변

9

당신은 이미 답을 가지고있다. 두 개의 작은 따옴표를 사용해야합니다.

select * from table where field like '%''something''%' 
2

가장 좋은 방법은 매개 변수를 ADO 또는 ADO.NET과 바인딩하는 것입니다.

처럼 (ADO.NET와 C#의 예) : SQL Server 2005에서

SqlCommand x = new SqlCommand(sqlConnection, @"select * from table where col like '%'[email protected]+'%'"); 
x.parameters.add(new SqlParameter("@para1",sqltype.varchar,100)).value = "this is a' test"; 

당신 '(')는 결합하지 않으려면 이중 따옴표와 작은 따옴표() '탈출 :

select * from table where col like '%this is a'' test%' 
+0

감사합니다. bdukes, 전혀 알지 못했습니다. – Floyd

2

두 개의 작은 따옴표가 최상의 해결책입니다.

또는 CHAR(39)을 사용하여 작은 따옴표 문자를 나타낼 수 있습니다.

select * from mytable where text like q'#%Here's some text%#'; 

이 오라클 10.2 이후로 볼 수 있습니다 :

UPDATE Employee SET LastName = 'O' + CHAR(39) + 'Brien' 
WHERE ID=1; 
+0

CHAR (39)가 SQL에서 작동하지 않았습니다. – Egalitarian

1

또한 "Q-인용"방법이있다.

'#'문자를 따옴표 구분 기호로 사용했지만 문자열에 표시되지 않는 문자는 거의 사용할 수 있습니다 (공백 문자와 같은 몇 가지 예외가 있음).

위와 같은 간단한 예에서는 아마 이렇게하지 않을 것입니다. 나는 작은 따옴표를 두 번 올리 겠지만 많은 문자열 리터럴을 포함하는 큰 동적 SQL 문을 작성할 때 편리합니다.

+0

이것은 PL/SQL 블록에서만 작동합니까? 나는 우리가 평범한 SQL에서 이것을 사용할 수 없다고 생각한다. – XING

관련 문제