>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 배열과 유사한 데이터를 어떻게 저장하고 검색할 수 있습니까?

MySQL에서 배열과 유사한 데이터를 어떻게 저장하고 검색할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-13 17:27:12915검색

How Can I Store and Retrieve Array-Like Data in MySQL?

MySQL 데이터베이스에 배열을 저장하는 방법

MySQL은 기본적으로 배열을 지원하지 않지만 배열과 유사한 데이터를 저장하는 대체 접근 방식을 제공합니다. 일반적인 방법 중 하나는 여러 테이블을 활용하고 JOIN 연산을 사용하여 테이블 간의 관계를 설정하는 것입니다.

다중 테이블 생성

질문에 설명된 시나리오를 고려해보세요. Person 테이블의 "fruits" 열에 과일 배열을 저장하기 위해 다음 테이블을 만들 수 있습니다.

  • Person:

    • id (INT)
    • 이름 (VARCHAR(50))
  • 과일:

    • 과일_이름(VARCHAR(20))
    • 색상(VARCHAR(20) ))
    • 가격 (INT)
  • Person_Fruit(연결 테이블):

    • person_id(INT)
    • fruit_name (VARCHAR(20))

관계 구축

Person_Fruit 테이블은 연결 테이블 역할을 하여 다대다 관계를 생성합니다. Person 테이블과 Fruit 테이블 사이에는 많은 관계가 있습니다. 이 테이블의 한 행은 특정 사람과 특정 과일 간의 관계를 나타냅니다.

Storing Array-Like Data

한 사람의 과일 배열을 저장하려면 "과일" 열을 사용하려면 Person_Fruit 테이블에 여러 행을 삽입하세요. 각 행은 하나의 과일을 나타냅니다.

예를 들어, 과일을 저장하려면 id=1인 사람에 대해 "apple", "orange" 및 "banana"인 경우 Person_Fruit에 다음 행을 삽입합니다.

(1, "apple")
(1, "orange")
(1, "banana")

배열형 데이터 검색

한 사람의 과일 배열을 검색하려면 다음을 사용하여 Person, Person_Fruit 및 Fruit 테이블을 조인하세요. 쿼리:

SELECT p.`name` AS `person_name`, GROUP_CONCAT(f.`fruit_name`) AS `fruits`
FROM Person AS p
INNER JOIN Person_Fruit AS pf ON p.`id` = pf.`person_id`
INNER JOIN Fruit AS f ON pf.`fruit_name` = f.`fruit_name`
GROUP BY p.`name`

위 내용은 MySQL에서 배열과 유사한 데이터를 어떻게 저장하고 검색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.