给出表格wort
中woerter
列中的条目
henlo
oenlh
olneh
我正在寻找一个sqlite命令,列出包含word
h
e
l
的{{1}}的所有条目(例如,为了示例,那些字母总是不同的) - 按此顺序。所以在这个例子中结果应该是
henlo
因为有
o
N he
换句话说:选择字符串中某处lo
的所有条目,之后有h
,e
和l
。它不需要在它之后,而是在它之后的某个地方。例如:
ssssshssssssessssssslsssossssso
将在结果中,
ssosssssossssshssssssesssssssls
不会。
到目前为止我的方法:
SELECT * FROM woerter WHERE wort LIKE' h%'和麦芽汁一样'%e%'和 麦芽酒喜欢'%l%'和麦芽汁一样'%o'
这是有缺陷的,因为它没有正确地整合e和l的顺序,它需要h和o在开头和结尾。
答案 0 :(得分:6)
您可以在字符串中间使用通配符
SELECT * FROM woerter WHERE wort LIKE '%h%e%l%o%'
这会搜索包含N个字符的任何字词,然后是h
,后跟N个字符,然后是e
等。
%
通配符匹配任意数量的字符,并将所有这些字符放在一个条件中,以确保字符的顺序正确。
LIKE模式中的百分号("%")匹配字符串中零个或多个字符的任何序列
您的条件不允许角色出现在字符串中的任何位置。由于百分比符号是通配符like 'h%'
,只有当h
位于字符串的开头时才会为真。与like '%o'
类似,o
必须位于字符串的末尾。
这意味着您选择以h
开头的任何字词,字符串中某处有e
和l
,并以o
结尾。