フォルダー パスを含むテーブルがあります。階層内のこれらのフォルダー間のすべての「ギャップ」を見つける必要があります。つまり、テーブルにこれらの 3 つのフォルダーが含まれている場合:
'A'
'A\B\C'
'A\B\C\D\E\F\G'
階層内で次の見つからないフォルダーを見つける必要があります。
'A\B'
'A\B\C\D'
'A\B\C\D\E'
'A\B\C\D\E\F'
このテーブルには250,000 を超えるフォルダーのレコードが含まれているため、最も効率的な方法を探します。そうしないと、スクリプトが長時間スタックしてしまい、時間がありません。
コメント: すべてのフォルダのリストはありません。私が持っているのは、階層内でそれらの間の「ギャップ」を見つける必要がある「ルート」フォルダーと「リーフ」フォルダーです。
2 番目のコメント: テーブルには複数の階層を含めることができ、すべての階層で「ギャップ」を見つける必要があります。さらに言えば、「DirID」と「BaseDirID」の2つの別のint列があります。「DirID」列は、テーブルの id 列です。「BaseDirID」には、階層内の最初のフォルダーの ID が含まれています。したがって、同じ階層のすべてのフォルダー (パス) は、この列で同じ値を共有します。サンプルデータの例:
DirID BaseDirID DisplayPath
1 1 'A'
2 1 'A\B\C'
3 1 'A\B\C\D\E'
4 4 'U'
5 4 'U\V\W'
6 4 'U\V\W\X\Y'
したがって、次のデータを見つける必要があります。
BaseDirID DisplayPath
1 'A\B'
1 'A\B\C\D'
4 'U\V'
4 'U\V\W\X'
前もって感謝します。