MySQL에서 직렬 배열 항목을 기반으로 레코드 검색
데이터베이스 필드 내의 직렬 배열에 데이터를 저장하면 편리하지만 문제가 있습니다. 특정 배열 항목을 기반으로 레코드를 검색하려고 할 때. 기존 SQL 구문은 배열 요소에 대한 직접 필터링을 허용하지 않습니다.
해결책: LIKE 절 사용
논평자들이 제안한 대로 대체 데이터 저장 방법을 고려하는 것이 최적입니다. 그러나 즉각적인 변경이 불가능할 경우 직렬화된 배열이 본질적으로 문자열이라는 사실을 활용할 수 있습니다. PHP 직렬화 형식(숫자 길이 표시기 포함)을 검사하여 LIKE 절을 작성하여 일치하는 레코드를 찾을 수 있습니다.
예:
다음 예를 고려해보세요.
select * from table WHERE serialized_array LIKE '%s:1:"n";s:1:"$n";%'
이 예에서는 키 "n"에 해당하는 배열 값이 "$n"인 레코드를 대상으로 합니다. 그러나 이 접근 방식에는 한계가 있다는 점에 유의하는 것이 중요합니다.
결론:
LIKE 절을 사용하면 즉각적인 쿼리 요구 사항을 해결할 수 있지만 다음과 같은 대체 데이터 저장 접근 방식을 고려할 필요성이 강조됩니다. 향상된 성능과 유지 관리를 위해 구조화된 쿼리를 활성화합니다.
위 내용은 MySQL에서 직렬화된 배열 항목을 기반으로 레코드를 어떻게 검색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!