2012-04-10 2 views
0

Как работают шаблоны в sqlite. Или как матч LIKE. Для нелогич- позволяет сказать:Как работают дикторы SQL/sqlite? LIKE оператор

1: LIKE('s%s%', 's12s12')
2: LIKE('asdaska', '%sk%')

В 1-ом примере какой% матчей после первого s, и как он решает продолжить соответствие% или сек после % ,
Во втором примере, если s соответствует первым, тогда FALSE вернулся.
Оба примера возвращают TRUE. Из моих знаний по программированию я пришел к выводу, что функция LIKE является некоторой рекурсивной функцией, которая, когда появляется 2 возможности, вызывает вызовы с двумя разными параметрами и использует ИЛИ между ними, то очевидно, что если один вызов возвращает true, верхняя функция возвращает true , Если это так, то LIKE-оператор тихо работает на больших БД. P.S. Есть еще один '_' подстановочный знак, который соответствует ровно одному символу
Я не смог найти подробную документацию оператора LIKE.

ответ

2

% соответствует нулю или нескольким символам, _ соответствует одному.

Ваш первый шаблон 's%s%' будет соответствовать, 'ss', 's1s', 's1111s', 'ss1111' и т.д. и т.п.

Однако если вы написали 's_s_' не будет соответствовать 's1s1', но ни один из вышеперечисленных.

+0

Я знаю, что это так, но как функционирует ** LIKE **, как функция решает сопоставить или не каждый символ? –

+0

Я имею в виду, как он решает, следует ли соответствовать регистру. выражение для текущего символа или следующего выражения для char –

+0

К сожалению, для получения информации о том, что вам нужно иметь доступ к источнику. Однако он, вероятно, будет работать как любой шаблон регулярного выражения. – GavinCattell

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