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

标签 sqlite shell

是否有一个纯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 被设计为嵌入式数据库,因此仅具有极其基本的编程功能(它有触发器,但没有像 if 或循环之类的控制逻辑)。 因此不可能在 SQL 中执行任何动态操作 – PRAGMA table_info 的结果不能直接用于SQL查询。

在数据库中的所有位置进行搜索的一种非常快速但肮脏的方法是使用 .dump 显示所有内容,然后只需 grep 即可。然而,这实际上并不快,因为在 SQL 中搜索索引列会更快。

关于sqlite - 如何在sqlite3表中查找字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162391/

相关文章:

android - 如何在 Android SQlite 中添加 bool 列

javascript - 如何使用sqlite3更新node js?

ios - 在 iONIC Cordova iOS 中预填充 SQLite 数据库

node.js - 基于 gnu readline 的 Node shell

c - 在 c 中实现子 shell

linux - Grep 在 Bash 脚本中没有这样的文件或目录错误,我应该插入等待命令吗?

.net - 为什么 "vcredist_x86_2010_sp1.exe,Asia"不允许我安装 SQLite?

nhibernate - 单元测试 NHibernate w/SQLite 和 DateTimeOffset 映射

BASH 语法错误 - [ : missing `]'

bash - Ubuntu bash 脚本 - 搜索所有文件夹以运行视频转换