2012-04-10 59 views
0

sqlite如何使用通配符。或者LIKE运营商如何匹配。 对于examle让说:SQL/sqlite通配符如何工作? LIKE运营商

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

在第一个例子后1 小号什么%匹配,以及它如何决定继续匹配%或小号
在第二示例,如果第一个匹配,则FALSE返回。
两个例子都返回TRUE 。从我的编程知识,我想出了LIKE功能是有的像一个递归函数,当两种可能性出现函数调用本身有2个不同的PARAMS和使用或它们之间,那么很明显,如果一个调用返回true,上层函数直接返回true 。如果是这样,那么LIKE运营商在大型数据库上使用起来很慢。 P.S.还有一个“_”通配符相匹配的一个字符
我无法找到LIKE操作的任何详细资料。

回答

2

%零个或多个字符,_匹配一个匹配。

你的第一图案's%s%'将匹配,'ss''s1s''s1111s''ss1111',等等,等等

但是,如果你写's_s_'它将匹配's1s1',但以上都不是。

+0

我知道这样做,但如何** ** LIKE功能做人,如何函数决定每个字符匹配或不? – 2012-04-11 15:28:31

+0

我的意思是,它是如何决定是否匹配reg。表达当前字符或下一个字符的表达式 – 2012-04-11 15:52:43

+0

不幸的是,要知道您必须访问源的详细信息。但它可能会像任何正则表达式匹配器一样工作。 – GavinCattell 2012-04-11 17:24:51