Предположим, у меня есть таблица с текстовым первичным ключом, которая называется "имя". Учитывая имя (которое может содержать любые произвольные символы, включая%), мне нужно, чтобы все строки из этой таблицы, начинающиеся с этого имени, были длиннее этого имени и не начинались с чего-либо еще в таблице, которая длиннеечем данное имя.
Например, предположим, что моя таблица содержит имена ad
, add
, adder
и adage
. Если я запрашиваю «детей рекламы», я хочу получить обратно add
, adage
. (adder
- это ребенок add
). Можно ли сделать это эффективно, так как у меня несколько миллионов строк? Рекурсивные запросы, безусловно, доступны.
В настоящее время у меня другой подход, когда я поддерживаю «родительский» столбец. Код для поддержки этого столбца довольно болезненный, и было бы ненужным, если бы этот другой подход был разумным.