MySQL에서 연결 목록 데이터 검색
MySQL 데이터베이스에서는 아래 제공된 것과 같은 테이블 구조를 만나게 됩니다.
table id INT NOT NULL PRIMARY KEY data ... next_id INT NULL
연결리스트의 순서에 따라 데이터를 검색하는 작업입니다. 예를 들어 다음 데이터를 고려하십시오.
id | next_id |
---|---|
1 | 2 |
2 | 4 |
3 | 9 |
4 | 3 |
9 | NULL |
결과는 1, 2, 4, 3, 9의 순서여야 합니다.
그러나 Oracle과 같은 특정 데이터베이스와는 달리 Microsoft SQL Server, MySQL은 재귀 쿼리를 지원하지 않습니다. 이 문제는 SQL 데이터베이스의 트리, 특히 얇고 길쭉한 트리를 나타내는 것과 유사합니다.
이러한 유형의 데이터 구조를 관리하기 위한 다양한 솔루션이 있습니다.
쿼리의 "깊이"를 제한하려면, 다음 기술을 활용하십시오.
<code class="sql">SELECT * FROM mytable t1 LEFT JOIN mytable t2 ON (t1.next_id = t2.id) LEFT JOIN mytable t3 ON (t2.next_id = t3.id) LEFT JOIN mytable t4 ON (t3.next_id = t4.id) LEFT JOIN mytable t5 ON (t4.next_id = t5.id) LEFT JOIN mytable t6 ON (t5.next_id = t6.id) LEFT JOIN mytable t7 ON (t6.next_id = t7.id) LEFT JOIN mytable t8 ON (t7.next_id = t8.id) LEFT JOIN mytable t9 ON (t8.next_id = t9.id) LEFT JOIN mytable t10 ON (t9.next_id = t10.id);</code>
느린 성능에도 불구하고 이 쿼리는 연결된 각 항목에 대해 단일 행을 생성합니다. 목록.
위 내용은 재귀 쿼리 없이 MySQL의 연결 목록에서 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!