mysql 查询条件分列
时间: 2023-06-21 08:17:21 浏览: 53
您可以使用 MySQL 中的 `CASE` 语句来实现查询条件分列,示例如下:
假设有一张名为 `students` 的表,包含以下字段:`id`、`name`、`age`、`sex`、`score`,现在需要查询该表中年龄大于等于 18 岁的男性和女性的总分数,可以使用以下 SQL 语句:
```
SELECT
SUM(CASE WHEN sex = '男' AND age >= 18 THEN score ELSE 0 END) AS male_score,
SUM(CASE WHEN sex = '女' AND age >= 18 THEN score ELSE 0 END) AS female_score
FROM
students;
```
以上 SQL 语句中,使用了两个 `SUM` 函数,分别对符合条件的男性和女性的总分数进行求和。`CASE` 语句用于判断每条记录是否满足查询条件,如果满足则累加对应的分数,否则不计入总分数。
相关问题
mysql查询语句条件查询
你好!对于MySQL的条件查询,你可以使用SELECT语句结合WHERE子句来实现。WHERE子句允许你设置一个或多个条件来过滤查询结果。
以下是一个示例查询语句,用于演示条件查询:
```sql
SELECT * FROM 表名 WHERE 条件;
```
在上面的语句中,`表名`是你要查询的表的名称,`条件`是你设置的过滤条件。你可以根据需要设置一个或多个条件,这些条件可以使用比较运算符(如`=`、`<`、`>`等)和逻辑运算符(如`AND`、`OR`、`NOT`等)进行组合。
以下是一些常见的条件查询示例:
1. 查询表中特定列满足某个条件的行:
```sql
SELECT 列1, 列2 FROM 表名 WHERE 条件;
```
2. 查询满足多个条件的行:
```sql
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
```
3. 查询满足任一条件的行:
```sql
SELECT * FROM 表名 WHERE 条件1 OR 条件2;
```
4. 查询满足某个条件但不满足另一个条件的行:
```sql
SELECT * FROM 表名 WHERE 条件1 AND NOT 条件2;
```
这只是一些基本示例,你可以根据具体的需求使用更复杂的条件查询。希望能对你有所帮助!如果你还有其他问题,请随时提问。
mysql json条件查询
MySQL中的JSON类型是MySQL 5.7版本引入的一种数据类型,可以存储和查询JSON格式的数据。在MySQL中,可以使用JSON类型的字段进行条件查询,查询条件可以是JSON对象或数组中的属性值、数组元素等。下面是一个简单的示例:
假设我们有一张名为“products”的表,其中包含一个名为“info”的JSON类型的字段,包含以下数据:
```
{
"name": "iPhone",
"price": 999,
"colors": ["black", "white"],
"details": {
"screen": "5.8 inches",
"camera": "12MP"
}
}
```
我们可以使用以下语句查询价格小于等于1000并且颜色为黑色的产品:
```
SELECT * FROM products WHERE info->>'$.price' <= 1000 AND JSON_CONTAINS(info->'$.colors', '["black"]')
```
该语句中的`info->>'$.price'`表示从JSON对象中获取“price”属性值,并将其转换为字符串类型;`JSON_CONTAINS(info->'$.colors', '["black"]')`表示查询“colors”数组中是否包含“black”元素。