배열로 저장된 db값 검색

배열로 저장된 db값 검색

QA

배열로 저장된 db값 검색

답변 4

본문

예를들어 type1 컬럼에 값이 배열로 들어가기도 하는데요

where type1 like '%{$sch['type1']}%' 식으로 검색문을 짜니까 검색이 안되는데

 

질문은 배열로 저장된 db값을 검색 할때 where type1 like '%{$sch['type1']}%' 를

어떻게 함수를 써야 할까요~?

662111144_1585589629.149.png

이 질문에 댓글 쓰기 :

답변 4

배열로 저장을 하실때

|로 배열값을 문자열로 만들어주신것 같은데요

 

mysql db 입장에서

 

type1의 값들이 배열로 인지하는 | 가 포함된 문자열일지

그냥 문자열일지 알기는 모호합니다.

 

만약 배열을 2개짜리 정형화된 구조라면

 

where  ( type1 like '%{$sch['type1']}%|%'  or type1 like '%|%{$sch['type1']}%' )

 

의 구조로 둘중에 어떤것이든 검색 하는 형태로 가능할것으로 생각됩니다.

 

MySql 함수중에 

INSTR(컬럼 , 검색어) 

라는 함수가 있습니다.

 

검색할때 like 보다 좀더 빠르고 like같이 작동하는 기능입니다.

대신 위의 예와 같이 사용은 어렵고

 

where  instr( type1 , '{$type1}' )

로 사용 가능합니다.

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 484
© SIRSOFT
현재 페이지 제일 처음으로