mysql中sql塊的用法:1、進行非默認的排序;2、更新替換某一個字段中的特定字符串【select a.id FROM(..)】;3、求比例的sql【b.num / a.sum * 100】。
mysql中sql塊的用法:
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
使用當(dāng)前表為條件更新當(dāng)前表。需要在條件處再添加一個()構(gòu)建一個虛擬表
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 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' and?qspc.is_bad?=0 GROUP?BY?style)?b?on?a.style?=?b.style
計算邏輯是分別求總數(shù)和平均數(shù)。然后兩數(shù)相除再用round求精度
更多相關(guān)免費學(xué)習(xí)推薦:mysql教程(視頻)
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦