如何查询sqlite数据库以获取字符串字段中search关键字之后的下一个可用字符列表。 例如,如果搜索关键字是“和”
,然后将字符串作为名称列表:
然后我应该得到字符[y,r,o,a]。
我尝试使用 substr(names,1,1)进行查询,但是substr需要指定起始索引,该起始索引在每个字符串中都不同。是否可以使用sqlite查询获取这些字符?
答案 0 :(得分:1)
您需要substr()
和instr()
:
select
substr(names, instr(lower(names), lower('and')) + length('and'), 1) nextchar
from tablename
where
names like '%' || 'and' || '_%'
请参见demo
您可以将'and'
替换为上述查询中所需的任何字符串。
答案 1 :(得分:1)
您可以利用 instr 函数来确定子目录的开始,例如:-
SELECT *, substr(names,instr(lower(names),'and') + length('and'),1) AS onechar
FROM mytable WHERE names LIKE ('%and%');
一个工作示例:-
DROP TABLE IF EXISTS mytable;
CREATE TABLE IF NOT EXISTS mytable (names TEXT);
INSERT INTO mytable VALUES('Andy Xyz'),('Andrew Xyz'),
('Xyz Andon'),('Xyz Miranda');
SELECT *, substr(names,instr(lower(names),'and') + length('and'),1) AS onechar FROM mytable WHERE names LIKE ('%and%');
结果为:-
根据您的预期结果。