加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql中sql块如何运用

发布时间:2022-02-22 14:36:53 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍了mysql中sql块如何使用,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。 mysql中sql块的用法:1、进行非默认的排序;2、更新替换某一个字段中的特定字符串【SELECT a.id
      这篇文章主要介绍了mysql中sql块如何使用,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
 
      mysql中sql块的用法:1、进行非默认的排序;2、更新替换某一个字段中的特定字符串【SELECT a.id FROM(..)】;3、求比例的sql【b.num / a.sum * 100】。
  
1、使用非默认的排序,例如使用213之类的排序
 
可以使用如下方法
 
SELECT DISTINCT
pg.part_grp_id,
pg.part_grp_name,
pg.equip_category_id
FROM
cost_part_grp pg,
cost_part_kit pk,
cost_part_event pe
WHERE
pe.mdl_ver_id IN (
SELECT
s.mdl_ver_id
FROM
cost_fleet_model s
WHERE
s.fleet_id = 1002
)
AND pe.part_kit_id = pk.part_kit_id
AND pk.part_grp_id = pg.part_grp_id
ORDER BY
CASE pg.equip_category_id
WHEN 2 THEN
1
WHEN 1 THEN
2
WHEN 4 THEN
3
ELSE
4
END
2、mysql更新替换某一个字段中的特定字符串
 
UPDATE t_bss_employees
SET mobilephone = REPLACE (mobilephone, "2129", "0000")
WHERE
id IN (
SELECT
a.id
FROM
(
SELECT
id
FROM
t_bss_employees
WHERE
mobilephone IN (
'18121299262',
'18121299247',
'18121299206',
'18121299209'
)
) AS a
)
将mobilephone字段中的2129字符串替换为0000
 
使用当前表为条件更新当前表。需要在条件处再添加一个()构建一个虚拟表
 
3、求比例的sql
 
select a.style, ROUND(
            b.num / a.sum * 100,
            2
        ) as styleRate from (SELECT
count(qspc.id) sum
,qq.style  style
from  t_qc_security_plan_comment  qspc
inner join t_qc_question qq
on qq.id = qspc.question_id
LEFT JOIN t_qc_address qa ON qa.id = qspc.address_id
LEFT JOIN t_system_organ  so on qa.hospital =  so.id
WHERE qq.scr_level is not NULL
and qq.type = 3  and so.tenant_code = 'zzyy'
GROUP BY style) a left join (SELECT
count(qspc.id) num
,qq.style  style
 
     计算逻辑是分别求总数和平均数。然后两数相除再用round求精度
 
     感谢你能够认真阅读完这篇文章,希望小编分享mysql中sql块如何使用内容对大家有帮助。

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!