我有一个SQLITE3数据库,其中我存储了各种列.一列(cmd)特别包含完整的命令行和相关参数.有没有办法只提取此列中的第一个单词(就在第一个空格之前)?我对查看使用的各种参数不感兴趣,但确实希望看到发出的命令.
这是一个例子:
从log2 limit 3中选择cmd;
user-sync //depot/PATH/interface.h
user-info
user-changes -s submitted //depot/PATH/build/...@2011/12/06:18:31:10,@2012/01/18:00:05:55
Run Code Online (Sandbox Code Playgroud)
从上面的结果来看,我想使用内联SQL函数(如果在SQLITE3中可用)来解析第一个空格实例,并且可能使用左函数调用(我知道这在SQLITE3中不可用)来返回"user-sync"字符串."user-info"和"user-changes"相同.
有任何想法吗?
谢谢.
小智 6
我的解决方案:
sqlite> CREATE TABLE command (cmd TEXT);
sqlite> INSERT INTO command (cmd) VALUES ('ls'),('cd ~'),(' mpv movie.mkv ');
sqlite> SELECT substr(trim(cmd),1,instr(trim(cmd)||' ',' ')-1) FROM command;
ls
cd
mpv
Run Code Online (Sandbox Code Playgroud)
优点:
“查找第一次出现”函数是 SQLite3 核心函数之一(http://www.sqlite.org/lang_corefunc.html)。
当然,使用起来要好得多instr(X,Y)。
所以你可以写:
SELECT substr(cmd,1,instr(cmd,' ')-1) FROM log2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1890 次 |
| 最近记录: |