You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite中查询列名包含指定字符串的数据?

在SQLite中查询列名包含特定字符串的列数据

没问题,我来帮你搞定这个需求!SQLite不像MySQL有专门的information_schema系统库,所以得用它自带的工具来实现,具体步骤如下:

步骤1:先找出符合条件的列名

假设你要查询的表是your_table,想找列名包含target_str的列,执行这条SQL就能拿到目标列名列表:

SELECT name FROM pragma_table_info('your_table') WHERE name LIKE '%target_str%';

这里的%是通配符,匹配任意长度的字符——比如你要找含email的列,把target_str换成email就行。执行后会返回所有列名包含目标字符串的结果,比如user_email、backup_email这类。

步骤2:构造查询语句获取数据

拿到列名后,把这些列名拼进SELECT语句里就可以获取对应数据了。比如第一步得到的列是user_email和backup_email,那查询数据的SQL就是:

SELECT user_email, backup_email FROM your_table;

程序端自动化处理(可选)

如果是在代码里(比如Python、Java),可以把这两步自动化:先执行第一步的SQL拿到列名列表,再动态拼接成查询语句执行。举个Python的小例子:

import sqlite3

conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()

# 第一步:获取符合条件的列名
cursor.execute("SELECT name FROM pragma_table_info('your_table') WHERE name LIKE '%target_str%'")
columns = [row[0] for row in cursor.fetchall()]

# 第二步:构造并执行查询
if columns:
    query = f"SELECT {', '.join(columns)} FROM your_table"
    cursor.execute(query)
    data = cursor.fetchall()
    # 这里可以添加数据处理逻辑
else:
    print("没有找到符合条件的列")

conn.close()

小提醒

SQLite本身不支持像MySQL那样用动态SQL一次性完成整个操作,所以必须分两步走:先拿到列名,再拼接查询语句。如果用的是SQLite命令行工具,直接复制第一步返回的列名手动拼接就行。

内容的提问来源于stack exchange,提问作者Francesco G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:43:18