У меня есть такой набор данных в базе данных MySQL, но это около 50 000+ записей.
A01 Description
A01.01 Description
A01.02 Description
A01.03 Description
A01.03.01 Description
A01.03.02 Description
A01.03.02.01 Description
A01.03.03 Description
A02 ....
A02.01
A03
B01
B02
B02.02
B02.03
...
Я хотел бы сделать запрос, в котором я мог бы передать что-то вроде "A", которое дает мне всех дочерних элементов, но только на один уровень в глубину, поэтому я получаю A01, A02, A03, но мне также нужно знать, что A01 и A02 детей и А03 нет.
Мне нужно будет повторить запрос с передачей «A01.03», чтобы получить дочерние элементы A01.03 и знать, что у A01.03.02 есть дочерние элементы, а у других - нет.
У меня есть база данных, насчитывающая около 50 000+ из них, и мне нужно эффективно запрашивать ее по запросу. Я, наверное, могу немного изменить структуру или добавить флаги, если нужно.
Будем признательны за любые советы или идеи! Спасибо!
ой, имею ввиду A01.03 детей. Буду редактировать.






Если я правильно понимаю, вы можете:
select substring_index(t.col1, '.', 1),
( count(*) > 1 ) as has_children
from t
where t.col1 like 'A%'
group by substring_index(t.col1, '.', 1);
Спасибо, я сильно над этим подумал. Я ценю его. Это приведет меня туда, куда мне нужно. Для справки для кого-либо еще, можно сделать LIKE 'A01.%' И увеличить номер группы substring_index для запроса подпунктов, таких как A01, и не показывать фактический результат A01!
A03не имеет детей.