2015-01-16 2 views
-4
id  hosp_id provider_settings        
1  50411  {"e-invoice":"0"}          
2  129  {"e-invoice":"0","Document GroupId":"**test**"}   
3  50411  {"e-invoice":"0","Document GroupId":"**testtt**"}   
4  50360  {"e-invoice":"0","Document GroupId":"**yryyyy**"} 

이것은 내 테이블 구조입니다.데이터베이스에서 정확한 문자열을 찾는 방법 Like without

나는 완벽하게 검색 "provider_settings"필드 "를 테스트"문자열/텍스트와 일치하고 테스트 문자열에 따라 가져 오기 기록 할.

그러나 우리는 다른 기록이 testtt 문자열/텍스트 데이터와 같은 페치되어서는 안 테스트 문자열/텍스트를 검색합니다.

도와주세요. 당신이 의미하는 경우

+0

는 어디 코드 스니 플릿은 provider_settings '% ** 테스트 ** %'LIKE TABLE_NAME에서 선택

*인가? –

+0

전자 - 인보이스 용으로 하나의 열, 문서 그룹 ID 용으로 하나의 열을 데이터베이스 내부에서 분해하십시오. 그런 다음 =를 사용하여 test와 일치 시키십시오. 예 : select * from mytable where newColumn = 'test' –

+0

하나 이상의 열을 추가하여 기존 json을 업데이트하면 어떻게됩니까? 이 필드 "provider_settings"는 동적으로 생성됩니다. –

답변

0

는 동일한 문자열 즉 대소 문자 일치는 경우

0

당신이 쿼리

SELECT * 
FROM v2_statement_provider_api_rel 
WHERE FIND_IN_SET('test', REPLACE(REPLACE(REPLACE(REPLACE(provider_settings, '}', ',') , ':', ',') , '{', ',') , '"', ',')) >0 
+0

내 질문에 대한 답변입니다. –

+0

Abid : 며칠 내로 대답을 스스로 받아 들일 수 있다고 생각합니다. – halfer

1

을 사용할 수 있습니다 귀하의 요구에 맞게 BINARY

SELECT * FROM table_name WHERE BINARY column_name = 'test' 

교체 TABLE_NAME 및 COLUMN_NAME를 사용 "test"를 찾고 json 또는 db에 배치 된 다른 문자열의 일부로, LIKE없이 찾을 수있는 다른 방법이 있습니다. >** -이 문자열의 특별한 구조가없는 경우 구조가 항상 좋아 보이는 경우

는 또한,이

만 테스트 (안 testtt 또는 유사한)를 얻을 수있는 방법이 아니다 그러나** 그런 다음 찾고있는 것을 멋지게 시작하고 끝내는 것으로 찾으십시오.

+0

따옴표를 구분 기호로 사용할 수도 있습니다. – halfer

관련 문제