国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL一條語(yǔ)句遞歸查詢所有子集數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了MySQL一條語(yǔ)句遞歸查詢所有子集數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

MySQL中,現(xiàn)有一組數(shù)據(jù),數(shù)據(jù)包含字段主鍵:id,父類ID:pid,id與pid是繼承關(guān)系,根據(jù)某個(gè)id查詢其下級(jí)關(guān)聯(lián)的所有記錄;
1、利用遞歸查詢語(yǔ)法。遞歸查詢是在 MySQL 8.0 版本引入的新特性,如果您的 MySQL 版本低于 8.0,則無(wú)法使用遞歸查詢語(yǔ)法。

WITH RECURSIVE sub_items AS (
    SELECT id, pid, name
    FROM items
    WHERE id = 1
    UNION ALL
    SELECT i.id, i.pid, i.name
    FROM items i
    INNER JOIN sub_items si ON si.id = i.pid
)
SELECT * FROM sub_items;

在上面的語(yǔ)句中,使用了 Common Table Expressions (CTE) 和遞歸查詢來(lái)實(shí)現(xiàn)。首先,定義了一個(gè) CTE sub_items,其中包含了 ID 為 1 的記錄。然后,使用 UNION ALL 將這個(gè)記錄和其下級(jí)記錄合并起來(lái),一直遞歸下去,直到找到所有下級(jí)記錄。最后,在最外層使用 SELECT 語(yǔ)句查詢并返回這些記錄。
在實(shí)際使用時(shí),需要將語(yǔ)句中的 items 替換成實(shí)際的表名,將 id、pid、name 替換成實(shí)際的字段名,將 1 替換成要查詢的 ID。

2、MySQL 8.0以下可以使用自連接查詢實(shí)現(xiàn)遞歸查詢:

SELECT * FROM (
    SELECT id, pid, name FROM items  WHERE id = 1
    UNION ALL
    SELECT i.id, i.pid, i.name
    FROM items  i
    INNER JOIN (
        SELECT * FROM (
            SELECT id, pid, name FROM items  WHERE id = 1
            UNION ALL
            SELECT id, pid, name FROM items WHERE pid = 1
        ) t1
    ) t2 ON i.pid = t2.id
) t3

在上面的語(yǔ)句中,使用了兩個(gè)子查詢,第一個(gè)子查詢獲取 ID 為 1 的記錄,第二個(gè)子查詢獲取 ID 為 1 的記錄以及其下級(jí)記錄。然后,使用 UNION ALL 將這兩個(gè)子查詢的結(jié)果合并起來(lái),實(shí)現(xiàn)遞歸查詢。
在實(shí)際使用時(shí),需要將語(yǔ)句中的 items 替換成實(shí)際的表名,將 id、pid、name 替換成實(shí)際的字段名,將 1 替換成要查詢的 ID。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-510398.html

到了這里,關(guān)于MySQL一條語(yǔ)句遞歸查詢所有子集數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Mysql 數(shù)據(jù)庫(kù)DQL 數(shù)據(jù)查詢語(yǔ)言 SELECT 基本查詢、條件查詢、聚合查詢、分組查詢、排序查詢、分頁(yè)查詢——包含DQL所有查詢語(yǔ)句。吐血分享。

    Mysql 數(shù)據(jù)庫(kù)DQL 數(shù)據(jù)查詢語(yǔ)言 SELECT 基本查詢、條件查詢、聚合查詢、分組查詢、排序查詢、分頁(yè)查詢——包含DQL所有查詢語(yǔ)句。吐血分享。

    DQL:數(shù)據(jù)查詢語(yǔ)言; 用來(lái)對(duì)表內(nèi)的數(shù)據(jù)進(jìn)行查找 。Database Query Language SQL語(yǔ)句分為:基本查詢、條件查詢、聚合查詢、分組查詢、排序查詢、分頁(yè)查詢。 ?可以發(fā)現(xiàn)name字段就只剩下一個(gè)張三了; ? 條件: 條件查詢—比較運(yùn)算符 比較運(yùn)算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    瀏覽(45)
  • MYSQL實(shí)戰(zhàn)45講筆記--基礎(chǔ)架構(gòu):一條SQL查詢語(yǔ)句是如何執(zhí)行的?

    MYSQL實(shí)戰(zhàn)45講筆記--基礎(chǔ)架構(gòu):一條SQL查詢語(yǔ)句是如何執(zhí)行的?

    MySQL 可以分為 Server 層和存儲(chǔ)引擎層兩部分。 Server 層 :連接器、查詢緩存、分析器、優(yōu)化器、執(zhí)行器等,涵蓋 MySQL 的大多數(shù)核心服務(wù)功能,以及所有的內(nèi)置函數(shù)(如日期、時(shí)間、數(shù)學(xué)和加密函數(shù)等),所有跨存儲(chǔ)引擎的功能都在這一層實(shí)現(xiàn),比如存儲(chǔ)過(guò)程、觸發(fā)器、視圖等

    2024年02月07日
    瀏覽(23)
  • 01 | 一條 SQL 查詢語(yǔ)句是如何執(zhí)行的?

    01 | 一條 SQL 查詢語(yǔ)句是如何執(zhí)行的?

    以下內(nèi)容出自 《MySQL 實(shí)戰(zhàn) 45 講》 一條 SQL 查詢語(yǔ)句是如何執(zhí)行的? 下面是 MySQL 的基本架構(gòu)示意圖,從中可以清楚地看到 SQL 語(yǔ)句在 MySQL 的各個(gè)功能模塊中的執(zhí)行過(guò)程。 大體來(lái)說(shuō),MySQL 可以分為 Server 層和存儲(chǔ)引擎層兩部分。 Server 層包括連接器、查詢緩存、分析器、優(yōu)化器

    2024年02月10日
    瀏覽(24)
  • 01 | 基礎(chǔ)架構(gòu):一條SQL查詢語(yǔ)句是如何執(zhí)行的?

    畫(huà)出 MySQL 的基本架構(gòu)圖 Server 層和存儲(chǔ)引擎層各自有哪些組件? Server 層 連接器 查詢緩存 分析器 優(yōu)化器 執(zhí)行器 所有內(nèi)置函數(shù)(日期、時(shí)間、數(shù)學(xué)和加密函數(shù)等) 所有跨存儲(chǔ)引擎的功能(存儲(chǔ)過(guò)程、觸發(fā)器、視圖等) 存儲(chǔ)引擎層 負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取 連接器的作用? 連接

    2024年02月08日
    瀏覽(23)
  • 解決MySQL中分頁(yè)查詢時(shí)多頁(yè)有重復(fù)數(shù)據(jù),實(shí)際只有一條數(shù)據(jù)的問(wèn)題

    解決MySQL中分頁(yè)查詢時(shí)多頁(yè)有重復(fù)數(shù)據(jù),實(shí)際只有一條數(shù)據(jù)的問(wèn)題

    有一個(gè)離奇的BUG,在查詢時(shí),第一頁(yè)跟第二頁(yè)有一個(gè)共同的數(shù)據(jù)。有的數(shù)據(jù)卻不顯示。 后來(lái)發(fā)現(xiàn)是在SQL排序時(shí)沒(méi)用主鍵排序。 解決:使用主鍵排序 以下是我準(zhǔn)備的舉例,可以自己試試。 分頁(yè)查詢公式:分頁(yè)查詢–他的公式為(偽代碼): [NOT] LIMIT (curPage-1)*pageSize,pageSize 執(zhí)行

    2024年02月16日
    瀏覽(16)
  • MySQL數(shù)據(jù)庫(kù)查詢語(yǔ)句之組函數(shù),子查詢語(yǔ)句

    MySQL數(shù)據(jù)庫(kù)查詢語(yǔ)句之組函數(shù),子查詢語(yǔ)句

    以組為操作單位,一組數(shù)據(jù)得到一個(gè)結(jié)果。 在沒(méi)有手動(dòng)分組的前提下,整張表默認(rèn)為一組數(shù)據(jù) max(列名):獲取最大值 min(列名):獲取最小值 sum(列名):獲取總和 avg(列名):獲取平均值 count(列名):統(tǒng)計(jì)值的個(gè)數(shù) 所有組函數(shù)都會(huì)自動(dòng)忽略null值 在某些情況下,我們需要根據(jù)需要

    2024年01月23日
    瀏覽(23)
  • MySQL數(shù)據(jù)庫(kù)——高級(jí)查詢語(yǔ)句

    MySQL數(shù)據(jù)庫(kù)——高級(jí)查詢語(yǔ)句

    數(shù)據(jù)庫(kù)是用來(lái)存儲(chǔ)數(shù)據(jù),更新,查詢數(shù)據(jù)的工具,而查詢數(shù)據(jù)是一個(gè)數(shù)據(jù)庫(kù)最為核心的功能,數(shù)據(jù)庫(kù)是用來(lái)承載信息,而信息是用來(lái)分析和查看的。所以掌握更為精細(xì)化的查詢方式是很有必要的。本文將圍繞數(shù)據(jù)的高級(jí)查詢語(yǔ)句展開(kāi)。 1.指定指字段進(jìn)行查詢——SELECT 語(yǔ)法:

    2024年02月11日
    瀏覽(107)
  • MySQL數(shù)據(jù)庫(kù)高級(jí)查詢語(yǔ)句

    MySQL數(shù)據(jù)庫(kù)高級(jí)查詢語(yǔ)句

    基于這兩個(gè)數(shù)據(jù)庫(kù)表格來(lái)實(shí)現(xiàn)以下實(shí)驗(yàn) concat(x,y)將提供的參數(shù)x和y拼接成一個(gè)字符串 trim()返回去除指定格式的值 GROUP BY 有一個(gè)原則,凡是在 GROUP BY 后面出現(xiàn)的字段,必須在 SELECT 后面出現(xiàn); 凡是在 SELECT 后面出現(xiàn)的、且未在聚合函數(shù)中出現(xiàn)的字段,必須出現(xiàn)在 GROUP BY 后

    2024年02月11日
    瀏覽(98)
  • MySQL 一條SQL語(yǔ)句是如何執(zhí)行的?

    MySQL 一條SQL語(yǔ)句是如何執(zhí)行的?

    ? 所以今天我們把MySQL拆解一下,看看里邊有哪些零件。下邊是MySQL的基本架構(gòu)示意圖。 大體來(lái)說(shuō),MySQL分為Server層和存儲(chǔ)引擎兩部分。 Server 層包括連接器、查詢緩存、分析器、優(yōu)化器、執(zhí)行器等,涵蓋 MySQL 的大多數(shù)核心服務(wù)功能,以及所有的內(nèi)置函數(shù)(如日期、時(shí)間、數(shù)

    2024年02月01日
    瀏覽(66)
  • Java 遞歸查詢?cè)摬块T(mén),及其下屬部門(mén),所有用戶

    Java 遞歸查詢?cè)摬块T(mén),及其下屬部門(mén),所有用戶: 調(diào)用方法: 參考:Java 遞歸查詢所有下級(jí)部門(mén) - 微酷網(wǎng) 遞歸查詢父級(jí)所有下級(jí),查詢樹(shù)形結(jié)構(gòu)_Clackson的博客-CSDN博客_遞歸遍歷所有下級(jí)

    2024年02月13日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包