跳到主要内容
版本:Nightly

WHERE

WHERE 子句允许通过指定条件过滤数据。

Syntax

SELECT *
FROM table_name
WHERE condition;

如果有 WHERE 子句,则它必须为布尔类型的表达式,这通常是带有比较和逻辑运算符的表达式。此表达式计算结果为 false 的行将会从进一步的转换或结果中排除。

示例

逻辑运算符

支持 ANDOR 作为逻辑运算符,并可以使用括号()组合条件。

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:____';

有关在日志中搜索关键字,请阅读查询日志