WHERE
WHERE 子句允许通过指定条件过滤数据。
Syntax
SELECT *
FROM table_name
WHERE condition;
如果有 WHERE 子句,则它必须为布尔类型的表达式,这通常是带有比较和逻辑运算符的表达式。此表达式计算结果为 false 的行将会从进一步的转换或结果中排除。
示例
逻辑运算符
支持 AND、OR 作为逻辑运算符,并可以使 用括号()组合条件。
SELECT * FROM system_metrics
WHERE idc = 'idc0' AND (host = 'host1' OR host = 'host2');
数字
支持 =, !=, >, >=, <, <= 作为比较运算符。
SELECT * FROM system_metrics WHERE cpu_util = 20.0;
SELECT * FROM system_metrics WHERE cpu_util != 20.0;
SELECT * FROM system_metrics WHERE cpu_util > 20.0;
SELECT * FROM system_metrics WHERE cpu_util >= 20.0;
SELECT * FROM system_metrics WHERE cpu_util < 20.0;
SELECT * FROM system_metrics WHERE cpu_util <= 20.0;
List 查找
List 子元素的匹配或不匹配。
List 匹配
SELECT * FROM system_metrics WHERE idc IN ('idc_a', 'idc_b');
List 不匹配
SELECT * FROM system_metrics WHERE idc NOT IN ('idc_a', 'idc_b');
字符串
对于字符串列,我们可以使用 LIKE 运算符在列中搜索指定的模式。 有两个通配符经常与 LIKE 运算符一起使用:
- 百分号
%代表零个、一个或多个字符 - 下划线
_代表单个字符
选择 host 列以字母 "a" 开头的所有记录:
SELECT * FROM system_metrics WHERE host LIKE 'a%';
从 go_info 表中选择 instance 列匹配模式 'localhost:____' 的所有记录,这意味着 'localhost:' 后面跟着恰好四个字符:
SELECT * FROM go_info
WHERE instance LIKE 'localhost:____';
有关在日志中搜索关键字,请阅读查询日志。