如何在sqlite3表中查找字符串?

问题描述 投票:0回答:1

是否有一个纯sqlite请求在数据库中查找字符串?

通过一些 shell,我可以从表中提取模式:

for i in *sqlite; 
   do sqlite3 $i ".tables"
   | grep -Eoh "[^ ]+" 
   | while read t; do 
          echo -n "$i:$t  ";
          sqlite3 $i '.schema "'"$t"'"';
   done;
echo;
done

然后我可以找到哪一列的类型是TEXT,并提出请求。

但是有没有一种纯 SQL 方法可以在终端中执行此操作?

sqlite shell
1个回答
3
投票

TLDR;将 sqlite 数据库转储到名为

dump.sql

的文件

sqlite3 some.db .dump > dump.sql

SQLite 被设计为嵌入式数据库,因此仅具有极其基本的编程功能(它有触发器,但没有像

if
或循环之类的控制逻辑)。 因此不可能在 SQL 中执行任何动态操作 –
PRAGMA table_info
的结果不能直接在 SQL 查询中使用。

在数据库中到处搜索的一种非常快速但肮脏的方法是用

.dump
显示所有内容,然后只是
grep
。然而,这实际上并不快,因为在 SQL 中搜索索引列会更快。

© www.soinside.com 2019 - 2024. All rights reserved.