SQLite-Where
Where 条件查询
语法格式:
SELECT
column_list
FROM
TABLE
WHERE
search_condition;
WHERE子句有以下形式:
left_expression COMPARISON_OPERATOR right_expression
例如,你可以使用下面的查询条件:
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;
除了在SELECT语句中使用WHERE子句,你还可以在UPDATE和DELETE语句后使用WHERE子句。
下表反应了WHERE子句中可以使用的表达式:
| 运算符 | 含义 |
|---|---|
| = | 等于 |
| <> 或 != | 不等于 |
| < | 小于 |
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
SQLite逻辑运算符
逻辑运算符返回的结果是 1,0或NULL值。
SQLite没有提供Boolean数据类型,1就表示True, 0表示False.
下表表示了SQLite逻辑运算符。

SQLite WHERE子句例子
我们将使用 tracks 表来表示怎么去使用WHERE子句。

SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;

SQLite将存储在AlbumId列中的值与字面值1进行比较,以测试它们是否相等。只有满足条件的行才会被返回。
在比较两个值时,你需要确保它们是相同的数据类型。你应该将数字与数字比较,将字符串与字符串比较,等等。
查询 albumID 等于1 且 milliseconds > 250000的歌曲 。
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;
使用LIKE进行模糊查询
案例: 在WHERE子句后面使用LIKE子句进行模糊查询。
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;

在WHERE子句后使用IN 运算符的案例
IN 操作符允许你检查一个值是否在一个由逗号分隔的值列表中。例如,要找到媒体类型 id 为 2 或 3 的轨道,你可以使用 IN 操作符,如下面的语句所示:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);

浙公网安备 33010602011771号