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 |