如何使用从调用mkqlite()获得的COUNT值?

时间:2012-09-21 04:56:00

标签: sql database matlab

我正在使用mksqlite从matlab创建和访问SQL数据库,我想获取表中的行数。我试过这个:

num = mksqlite('SELECT COUNT(*) FROM myTable');

,但返回的值不是很有用。如果我在我的脚本中放置一个断点并检查变量,我发现它是一个带有单个字段的结构,称为“COUNT(_)”,它实际上似乎是一个字段的无效名称,所以我无法访问它:

K>> class(num)

ans =
struct

K>> num

num = 
    COUNT(_): 0

K>> num.COUNT(_)
??? num.COUNT(_)
                    |
Error: The input character is not valid in MATLAB statements or expressions.

K>> num.COUNT()
??? Reference to non-existent field 'COUNT'.

K>> num.COUNT
??? Reference to non-existent field 'COUNT'.

即使是MATLAB IDE也无法访问它。如果我尝试双击变量编辑器中的字段,则会出现问题:

??? openvar('num.COUNT(_)', num.COUNT(_));
                                              |
Error: The input character is not valid in MATLAB statements or expressions.

那么我该如何访问这个字段?

1 个答案:

答案 0 :(得分:0)

你是对的,问题是mksqlite以某种方式设法创建一个无法读取的无效字段名称。最简单的解决方案是在SQL中添加一个AS子句,以便该字段具有合理的名称:

>> num = mksqlite('SELECT COUNT(*) AS cnt FROM myTable')

num = 
    cnt: 0

然后删除额外的间接层,你可以这样做:

>> num = num.cnt;

>> num

num =
     0