2011-02-16 5 views
1

내 테이블의 SQL 문자열에 간단한 작업을 수행하는 데 도움이 필요하면 필드 주석 (사용자 의견)이 있습니다.SQL 문자열 함수

제 프로 시저에서는 매개 변수 @input을 전달하고 있습니다. 문자열에 @input 문자열이 들어 있는지 확인하고, @input이 들어 있으면 @input과 같은 부분 문자열에 스타일을 추가합니다.

예 : 같은 설명 문자열이있는 경우 - 및

@input - "tes" 

"내가 사용자 테스트 사용자를 추가 한"나는 거기 RDBMS에 관계없이

i have added the user <span style="color:red">Tes</span>t user 
+2

어떤 데이터베이스가 있습니까? @ 변수는 SQL Server 및 MySQL에서 지원됩니다. –

+0

질문을 더 명확하게 할 수 있습니까? 테이블 결과를 생성하는 것과 같은 것입니다 ... – Crimsonland

답변

1

: OK 더욱 추한 아직 검증되지 않은,하지만 당신을 위해 작동합니다. 이제 문자열의 정확한 텍스트를 바꾸기로 교체합니다.

업데이트 : 방금이 코드를 테스트했으며 필요한대로 작동합니다. 문자열에서 'tes'을 사용하여 Tes을 찾고 원래 문자열에 그대로 Tes을 출력합니다.

+0

안녕하세요, 고마워 ....하지만 문제는 실제 문자열을 수정합니다 ... 예 ... 문자열 "나는 사용자 '테스트 사용자를 삭제했습니다'".. 이것은 생산 및 출력됩니다 - "나는 사용자 ''tes t 'user' "... 여기 'Test'라는 이름이 테스트 ...로 변경됩니다. 내 문제를 이해하고 있다고 생각합니다. –

+0

당신이 처리하는 문제입니다. 대/소문자를 구분하지 않는 데이터 정렬을 사용하여 작업 할 때 – Brettski

+0

감사합니다 ... 방금 테스트를 거쳤습니다 ... 그 작업 –

1
select comment from table where comment like '%' + @input + '%' 

, 같은 출력을 원하는 다른 RDBMS (SQLserver, Oracle, Mysql)에서는 LIKE입니다. 특히 내 대답은 DB를 가정하는 것은 나는의 사용을 발견하기 때문에 SQL Server는이다 @

편집 :<span> 태그를 얻으려면, 당신은에 <span> 태그로 입력 문자열을 대체하기 위해 정규식을 사용 할 수 있습니다 생각 출력 결과. 형식으로 SQL 쿼리에서 결과를 얻는 대신 기본 코드에서 수행하는 것이 더 좋습니다. SQL 서버에서 REPLACE 기능을 사용할 수도 있습니다. T-SQL (마이크로 소프트 SQL)

SELECT REPLACE(comment, @input, '<span style="color:red">' + SUBSTRING(comment, PATINDEX('%' + @input + '%', comment), len(@input)) + '</span>') as cmt 
FROM thetable 
WHERE comment LIKE '%' + @input + '%' 

편집을 사용하여

+0

텍스트가 어디에서 업데이트됩니까? Oracle은 변수에서 @를 지원하지 않습니다. –

+0

답장을 보내 주셔서 감사합니다, SQL 서버 2005 -하지만 내 문제는, 내가 사용하는 모든 의견을 가지고 "@ 입력과 같은 의견을 어디서 주석 테이블에서 선택"문을하지만, (@ 입력)와 같은 부분 문자열을 수정하려면 문자열 나는 ​​프리스트 포스트에서 설명한대로 –

+0

@ 톰 포니 - 아아 .. 질문은 내 대답 후에 편집됩니다. 죄송합니다. 편집을 보지 못했습니다. 첫 번째 질문에서는 태그가 표시되지 않았습니다. 그러므로 내 대답. –