mysql查询同一个字段必须满足多个值


$ids为存放多个值的数组

$where1['goods_no']    = array('IN', $ids); //产品编号

$where2['goods_count'] = array($match ? 'eq' : 'elt', count($ids)); //产品数量
$query = $this->field('customer_id, COUNT(goods_no) AS goods_count')->where($where1)->group('customer_id')->buildSql();
$cust  = $this->table($query . ' AS customer_list')->field('customer_id, goods_count')->where($where2)->order('goods_count DESC')->select();
MySQL,`CASE WHEN`语句用于条件判断并返回基于特定条件的。它可以用于单个字段,但在处理多个字段或需要复杂条件查询时,通常我们使用的是`IF()`函数或者是结合`UNION`这样的操作,而不是直接将多个`WHEN`子句应用于多个字段。以下是针对单个字段的例子: ```sql SELECT column_name, IF(column_name > some_value, 'Higher', 'Lower') AS comparison_result FROM table_name; ``` 如果你想根据几个条件对数据进行分段,并生成多个结果集,可以考虑使用`UNION`来组合查询结果: ```sql SELECT field1, field2 FROM ( SELECT field1, field2, 'ConditionA' FROM your_table WHERE condition_for_A ) a UNION ALL SELECT field1, field2 FROM ( SELECT field1, field2, 'ConditionB' FROM your_table WHERE condition_for_B ) b UNION ALL SELECT field1, field2 FROM ( SELECT field1, field2, 'DefaultCondition' FROM your_table ); ``` 在这个例子,每个内部查询都只包含满足特定条件的记录,并附上相应的标签(如 'ConditionA'、'ConditionB' 或 'DefaultCondition'),外部查询通过 `UNION ALL` 来合并这些结果。 如果你是在问如何在单一查询应用多条件判断到多个字段,通常的做法会涉及更复杂的逻辑构建,这可能包括使用多个`CASE WHEN`语句或结合其他聚合函数等。例如,假设你需要根据两个字段的不同情况来计算总分: ```sql SELECT column1, column2, CASE WHEN column1 > 50 AND column2 > 50 THEN (column1 + column2) WHEN column1 > 50 THEN column1 * 2 ELSE column2 * 2 END as total_score FROM your_table; ``` 这个示例,`CASE`语句根据`column1`和`column2`的进行不同的计算规则。请注意,实际的应用场景可能会要求更精确的逻辑设计,上述内容仅供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值