57 sqlite
可以获取包含表的所有列名的行,如下所示:
|id|foo|bar|age|street|address|
Run Code Online (Sandbox Code Playgroud)
我不喜欢用Pragma table_info(bla)
.
Kon*_*kus 88
SELECT sql FROM sqlite_master
WHERE tbl_name = 'table_name' AND type = 'table'
Run Code Online (Sandbox Code Playgroud)
然后使用Reg Exp(很容易)解析这个值,它看起来类似于: [(.*?)]
或者你可以使用:
PRAGMA table_info(table_name)
Run Code Online (Sandbox Code Playgroud)
Ger*_*ero 32
如果您.headers on
在执行查询之前使用命令行shell到SQLite .您只需要在给定的会话中执行此操作一次.
是的,您可以使用以下命令实现此目的:
sqlite> .headers on
sqlite> .mode column
Run Code Online (Sandbox Code Playgroud)
在您的表上选择的结果将如下所示:
id foo bar age street address
---------- ---------- ---------- ---------- ---------- ----------
1 val1 val2 val3 val4 val5
2 val6 val7 val8 val9 val10
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以在 sqlite 中使用 pragma 相关命令,如下所示
pragma table_info("table_name")
--Alternatively
select * from pragma_table_info("table_name")
Run Code Online (Sandbox Code Playgroud)
如果您需要像 那样的列名id|foo|bar|age|street|address
,基本上您的答案就在下面的查询中。
select group_concat(name,'|') from pragma_table_info("table_name")
Run Code Online (Sandbox Code Playgroud)
这有助于HTML5 SQLite:
tx.executeSql('SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "your_table_name";', [], function (tx, results) {
var columnParts = results.rows.item(0).sql.replace(/^[^\(]+\(([^\)]+)\)/g, '$1').split(','); ///// RegEx
var columnNames = [];
for(i in columnParts) {
if(typeof columnParts[i] === 'string')
columnNames.push(columnParts[i].split(" ")[0]);
}
console.log(columnNames);
///// Your code which uses the columnNames;
});
Run Code Online (Sandbox Code Playgroud)
您可以使用您的语言重用正则表达式来获取列名称.
更短的选择:
tx.executeSql('SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "your_table_name";', [], function (tx, results) {
var columnNames = results.rows.item(0).sql.replace(/^[^\(]+\(([^\)]+)\)/g, '$1').replace(/ [^,]+/g, '').split(',');
console.log(columnNames);
///// Your code which uses the columnNames;
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
109530 次 |
最近记录: |