используя конструктор запросов Laravel для исключения определенной строки

Допустим, у меня есть таблица с именем table и у него есть столбец под названием pathформат строки в path это как следовать

row path
1   /path1/aa/bg/c/da
2   /path1/ab/v
3   /path1/a/ba/ca

Как видите, каждый сегмент разделен символом /,
Как отформатировать условие в where с помощью like так что единственная строка возвращается row 2 с 2 slashes,

Я старался
DB::table('table')->where('path','LIKE','/path1/%/%')->get()

Но запрос выше вернет все строки из-за последнего %, Как я могу исключить / после последнего % так что, запись, которая имеет символ / после последнего % не будет включен в результат?

1

Решение

если вы ищете совпадение с одним символом:

DB::table('table')->where('path','LIKE','/path1/_/_')->get()

«test%» соответствует всем символам после

% test соответствует всем символам перед

«_» соответствует одному символу

В противном случае, если длина строки, которую вы соответствуете, является переменной, вы можете использовать только регулярные выражения,

select * from table where path REGEXP '\/path1\/[a-zA-Z0-9_]+\/[a-zA-Z0-9_]+'

более общее соответствие, соответствующее специальным символам:

select * from table where path REGEXP '\/path1\/.+\/.+'
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]