国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中的一些稍微復雜用法實例代碼

2024-07-25 19:09:13
字體:
來源:轉載
供稿:網友

前言

mysql的語法相信對大家來說都不是難事,但是本文主要給分享了一些mysql復雜用法的相關內容,通過這篇文章相信大家會對mysql更深的了解一些,下面話不多說了,來一起看看詳細的介紹吧

一對多數據顯示成一行

GROUP_CONCAT(expr)

1、涉及的表關系:teacher表、teacher_subject_rel表(教師所能教的學科表)、subject表
2、業務場景: 需要拉取所有教師的編號(teacher_no)、學科名(subject_name)。   教師表(teacher)和學科(teacher_subject_rel)是一對多關系, 往往查詢出現的是同一教師多條 數據。我們希望得到每個教師一條數據 學科拼接成一條

1、基本語法

group_concat( [DISTINCT] 要連接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'] )

2、例子

SELECT t.teacher_id as '教師id', t.teacher_no '教師編號', ( SELECT  GROUP_CONCAT(s.subject_name) FROM  teacher_subject_rel tsr LEFT JOIN `subject` s ON tsr.subject_id = s.subject_id WHERE  t.teacher_id = tsr.teacher_id) AS '學科'FROM teacher t

mysql,用法,代碼

子查詢、查詢臨時表、EXISTS

例子

SELECT *FROM (  SELECT   o.id,   o.student_intention_id,   s. NAME,   s.area_id,   a.area_name,   s.exam_year,   o. STATUS,   CASE o. STATUS  WHEN '1' THEN   '待提交'  WHEN '2' THEN   '待指派'  WHEN '3' THEN   '已完成'  WHEN '4' THEN   '處理中'  END statusName,  CASE o.emergency_degree WHEN '1' THEN  '正常' WHEN '2' THEN  '緊急' WHEN '3' THEN  '非常緊急' END emergencyDegreeName, o.emergency_degree, o.update_time, (  SELECT   first_lesson_time  FROM   jx_strategy  WHERE   jx_lesson_plan_order_id = o.id  AND STATUS IN (2, 7)  AND first_lesson_time > now()  ORDER BY   first_lesson_time ASC  LIMIT 1 ) AS first_time, (  SELECT   deal_user_id  FROM   jx_strategy  WHERE   jx_lesson_plan_order_id = o.id  AND STATUS <> 7  AND deal_user_id <> 0  ORDER BY   id DESC  LIMIT 1 ) AS deal_user_idFROM jx_lesson_plan_order oLEFT JOIN student s ON s.student_intention_id = o.student_intention_idLEFT JOIN area a ON s.area_id = a.idWHERE o. STATUS <> 1AND s.phone = '18501665888'AND o.emergency_degree = 1AND o. STATUS = 2AND s.exam_year = '2015'AND o.update_time >= '2018-08-14 20:28:55'AND o.update_time <= '2018-08-14 20:28:55' ) AS aWHERE 1 = 1AND a.deal_user_id = 145316AND a.first_time >= '2018-08-17 00:00:00'AND a.first_time <= '2018-08-30 00:00:00'AND EXISTS ( SELECT  * FROM  jx_strategy js WHERE  js.jx_lesson_plan_order_id = a.id AND js. STATUS IN (2, 7) AND js.subject_id IN (2, 3))ORDER BY a.update_time DESCLIMIT 0, 10

update 關聯變量條件修改

1、涉及的表關系: user_info表中的 id_number(身份證號) teacher表中的birth字段、 關聯關系usrer_id = teacher_id
2、業務場景:獲取用戶身份證上的出生日期將出生日期更新在birth字段

UPDATE teacher t INNER JOIN (SELECT t.teacher_id, t.birth, u.id_number, CONCAT(SUBSTRING(u.id_number, 7, 4), '-', SUBSTRING(u.id_number, 11, 2), '-', SUBSTRING(u.id_number, 13, 2)) as birth1, u.reg_date, t.exit_time from teacher tINNER JOIN user_info u ON u.user_id = t.teacher_id) info on info.teacher_id = t.teacher_idSET t.birth = info.birth1WHERE info.reg_date > '2018-08-20 00:00:00' and info.id_number is not NULL and (info.birth is NULL or t.birth = '') and t.is_train = 1

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西丰县| 忻城县| 浮山县| 松潘县| 阿图什市| 富源县| 成都市| 晋中市| 武清区| 华安县| 措美县| 闻喜县| 北流市| 连云港市| 九江县| 苗栗县| 会东县| 安化县| 沙河市| 夏河县| 封开县| 武邑县| 宜昌市| 墨玉县| 普安县| 鄂托克前旗| 武功县| 高雄市| 泰顺县| 肥西县| 伊金霍洛旗| 开平市| 连江县| 朝阳市| 泸西县| 随州市| 浙江省| 巩义市| 鱼台县| 榆林市| 宣化县|