2016-02-01 2 views
1

Я хочу найти общую родительскую папку в моих табличных изображениях с полем. Например, в моей таблице у меня для этой таблицы 6 строк.MySQL найти общий путь

1 C: \ образы \ сайт1 \ корень \ IMG \ logo.png

2 C: \ образы \ сайт1 \ корень \ ресурс \ test1.png

3 C: \ Images \ сайт1 \ корень \ ресурс \ test2.png

4 C: \ Images \ site1 \ корень \ ресурс \ test3.png

5 C: \ Images \ site1 \ корень \ образы \ background.png

И Я хочу иметь «корневые» папки: c: \ images \ site1 \ root \ img \ c: \ images \ site1 \ root \ resource \ c: \ images \ site1 \ root \ images \ Что такое запрос SQL, чтобы получить это, пожалуйста?

Большое спасибо.

ответ

0

Это может быть немного сложно. Если вы знаете, что путь не разделяет имя файла, вы могли бы заменить последнюю часть с пустой строкой:

select distinct replace(path, substring_index(path, '\\', -1), '') 

Однако, это не всегда может быть правдой.

Что вы хотите - это все до последнего появления \\. Вот метод, использующий substring_index():

select distinct substring_index(path, '\\', 
           length(path) - length(replace(path, '\\', '') 
           ) 

Разница в длинах просто подсчет количества символов разделителей в строке. Если путь имеет один разделитель (т. Е. 'A \ b'), то аргумент substring_index() равен 1, что вам и нужно.

+0

i Гордон, он работает! Большое вам спасибо, что вы спасли мой день ... и мою жизнь! – dumber

Смежные вопросы