SQL 关键字和符号

SQL 关键字和符号

SELECT - FROM - WHERE 语句

SELECT 语句用于决定最终的输出结果里的字段。比如:

下面 SQL 的输出结果中将只有两个字段 “a” 和 “b”:

SELECT a, b FROM "t/#"

WHERE 语句用于对本事件中可用字段,或 SELECT 语句中定义的字段进行条件过滤。比如:

## 选取 username 为 'abc' 的终端发来的消息,输出结果为所有可用字段:

SELECT * FROM "#" WHERE username = 'abc'

## 选取 clientid 为 'abc' 的终端发来的消息,输出结果将只有 cid 一个字段。
## 注意 cid 变量是在 SELECT 语句中定义的,故可在 WHERE 语句中使用:

SELECT clientid as cid FROM "#" WHERE cid = 'abc'

## 选取 username 为 'abc' 的终端发来的消息,输出结果将只有 cid 一个字段。
## 注意虽然 SELECT 语句中只选取了 cid 一个字段,所有消息发布事件中的可用字段 (比如 clientid, username 等) 仍然可以在 WHERE 语句中使用:

SELECT clientid as cid FROM "#" WHERE username = 'abc'

## 但下面这个 SQL 语句就不能工作了,因为变量 xyz 既不是消息发布事件中的可用字段,又没有在 SELECT 语句中定义:

SELECT clientid as cid FROM "#" WHERE xyz = 'abc'

FROM 语句用于选择事件来源。如果是消息发布则填写消息的主题,如果是事件则填写对应的事件主题。

运算符号

函数名| 函数作用| 返回值|
---|---|---|---
+| 加法,或字符串拼接| 加和,或拼接之后的字符串|
-| 减法| 差值|
*| 乘法| 乘积|
/| 除法| 商值|
div| 整数除法| 整数商值|
mod| 取模| 模|
=| 比较两者是否完全相等。可用于比较变量和主题| true/false|
=~| 比较主题(topic)是否能够匹配到主题过滤器(topic filter)。只能用于主题匹配| true/false