mysql case

查看粉丝 及是否关注该粉丝
select f.*, case when f1.id is null then '1' else '0' end
f_state from follow f left join follow f1 
on f1.follow_from = f.follow_to 
and f1.follow_to = f.follow_from and f1.state = '0'
where f.follow_to = 2 and f.state = '0'

### MySQL CASE 语句概述 在 SQL 查询中,`CASE` 表达式用于执行条件逻辑操作。这种表达方式类似于编程中的 `if...else` 结构,在查询数据时提供了一种灵活的方法来处理不同的情况。 #### 基本语法结构 MySQL 中的 `CASE` 有两种基本形式: - **简单 CASE** 当测试单个表达式的不同值时使用此版本。它会依次比较该表达式的每一个可能的结果并返回相应的匹配项。 ```sql SELECT column_name, CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END as alias_column FROM table_name; ``` - **搜索 CASE** 允许更复杂的布尔表达式作为判断条件,对于每个满足条件的情况给出相应结果;如果没有任何条件被满足,则返回默认值(可选)。 ```sql SELECT column_name, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END as alias_column FROM table_name; ``` #### 实际应用案例 假设有一个名为 `orders` 的订单表,其中包含字段 `order_status` 和其他相关信息。现在想要创建一个新的列显示更加友好的状态描述而不是原始的状态码[^1]。 ```sql -- 使用简单 CASE 将 order_status 转换为文字说明 SELECT order_id, customer_id, CASE order_status WHEN 'P' THEN 'Pending' WHEN 'C' THEN 'Completed' WHEN 'X' THEN 'Cancelled' ELSE 'Unknown Status' END AS status_description FROM orders; -- 或者使用搜索 CASE 来实现相同的功能 SELECT order_id, customer_id, CASE WHEN order_status = 'P' THEN 'Pending' WHEN order_status = 'C' THEN 'Completed' WHEN order_status = 'X' THEN 'Cancelled' ELSE 'Unknown Status' END AS status_description FROM orders; ``` 上述两个例子展示了如何利用 `CASE` 语句根据特定业务需求自定义输出内容。这不仅提高了SQL查询的表现力,还使得最终得到的数据更容易理解和分析[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值