난 당신이 다음과 같은 배열을 얻을 그 값 중 하나를를 unserialize하면 followinng쿼리 직렬화 된 데이터
umeta_id | user_id | meta_key | meta_value
433369 | 44 | all_contests | a:1:{s:12:"all_contests";a:2:{i:5011;a:1:{s:7:"entries";i:3;}i:8722;a:1:{s:7:"entries";i:3;}}}
433368 | 63 | all_contests | a:1:{s:12:"all_contests";a:2:{i:5032;a:1:{s:7:"entries";i:3;}i:8724;a:1:{s:7:"entries";i:3;}}}
과 같이 SQL 데이터의 행이 1000 주어진 컨테스트 ID에 대해 모든 사용자 중에서 리더 보드를 만들려고합니다. "all_contests"키는 사용자가 등록한 모든 컨테스트 ID로 구성된 배열을 보유합니다. 그 안에는 해당 콘테스트에 대한 항목이 있습니다.
쿼리는 'all_contests'키가 포함 된 모든 행을보고 주어진 컨테스트 ID에 대해 10 개의 가장 높은 항목 값을 찾아야합니다.
직렬 데이터의 내부를 신뢰할 수있는 방식으로 검색 할 수 있는지조차 확신하지 못합니다.
오, 소년. 이는 직렬화 된 배열로 데이터를 저장하는 것이 SQL 쿼리에서 불가능한 데이터를 USING으로 만드는 것을 완벽하게 보여줍니다. – RiggsFolly
관심있는 행을 선택하고 PHP에서 데이터를 unserialize()하여 해당 데이터를 정리해야합니다. 각 행에 대해 수행하려는 작업은 아마도 필요한 데이터를 얻기 위해 처리 할 수있는 또 다른 데이터 배열을 구축 할 것입니다. – RiggsFolly