文章目录
根据不同的条件求不同条件下的字段的count
如下:如何把下面这三条查询count的语句用一条sql语句实现显示
SELECT count(1) FROM tb_account where name='李亚楠';
SELECT count(1) FROM tb_account where name='黄桂燕';
SELECT count(1) FROM tb_account where name='牧丹丹';
解:
SELECT
sum(
IF (
(name = '李亚楠'),1,0)
) "count1",
sum(
IF ((name ='黄桂燕'),1,0)
) "count2",
sum(
IF ((name = '牧丹丹'),1,0)
) "count3"
FROM
tb_account
根据不同的条件求不同条件下的字段条数的sum
如下:如何把下面这三条查询sum的语句用一条sql语句实现显示
SELECT sum(is_wx_state) FROM tb_account where name='李亚楠';
SELECT sum(is_wx_state) FROM tb_account where name='黄桂燕';
SELECT sum(is_wx_state) FROM tb_account where name='牧丹丹';
解:
SELECT
sum(
IF (
(name = '李亚楠'),is_wx_state,0)
) "sum1",
sum(
IF ((name ='黄桂燕'), is_wx_state, 0)
) "sum2",
sum(
IF ((name = '牧丹丹'),is_wx_state,0)
) "sum3"
FROM
tb_account
如何查询数据库里逗号拼接的值
原数据:
查询语句:
SELECT
*
FROM
tb_anpin_plan
WHERE
find_in_set( '清洁作业', business_type )
SELECT business_type FROM tb_anpin_plan
查询后效果图:
查询某字段中以逗号分隔的字符串的关联查询实现
关联表1数据:
关联表2数据:
把表1的res_id字段跟表2的resid字段进行关联查询:
查询语句:
select a.res_id,b.* from tb_enterprise_we_chat_external_house a LEFT JOIN ost_house b ON FIND_IN_SET(b.resid,a.res_id) where a.id = 252660
查询后效果图:
如何查询数据库里字符串字段里的数组类型的值
值为数值类型的数组的查询
原数据:
查询语句:
SELECT
*
FROM
tb_account
WHERE
JSON_CONTAINS(
role_ids,
JSON_ARRAY( 45 ))
查询后效果图:
值为字符串类型的数组的查询
原数据:
查询语句:
SELECT
org_ids
FROM
tb_account
WHERE
JSON_CONTAINS(
org_ids,
JSON_ARRAY('Y000000445'))
查询后效果图:
根据不同的条件update不同的字段值
UPDATE:后面是表名
SET:后面是你要修改的字段名
WHEN:后面是条件
THEN:后面是满足条件要修改为的值
plan_start_date,plan_start_date 是时间字段,CURDATE()是时间函数
UPDATE tb_anpin_plan
SET plan_state =(
CASE
WHEN CURDATE()< plan_start_date THEN 0
WHEN plan_start_date <= CURDATE() AND CURDATE()<= plan_end_date THEN 1
WHEN CURDATE()> plan_end_date THEN 2
END
)
WHERE
state =1
order by 多个字段及其多字段排序
update_time字段:时间类型
role_value字段:数值类型
先用update_time降序,然后在用role_value降序
SELECT
update_time,
role_value
FROM
`tb_account`
ORDER BY
update_time DESC,
role_value DESC;
先role_value升序,然后在用update_time降序
SELECT
role_value,
update_time
FROM
`tb_account`
ORDER BY
role_value ASC,
update_time DESC;
group_concat()将字段的值进行拼接
原数据:
拼接后数据查询:
SELECT
group_concat( point_ids ) pointIds
FROM
tb_polling_plan
查询后效果图: