色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql查詢兩個數組差

林雅南2年前9瀏覽0評論

在MySQL中,我們可以很容易地使用子查詢和內置函數來計算兩個數組之間的差。

首先,讓我們定義兩個數組:

SET @array1 = '1,2,3,4,5';
SET @array2 = '3,4,5,6,7';

現在,我們想要找出數組1中有,但數組2中沒有的元素。為了實現這個目標,我們將使用MySQL內置函數NOT IN()GROUP_CONCAT()

SELECT GROUP_CONCAT(number SEPARATOR ',')
FROM (SELECT number FROM
(SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(@array1, ',', numbers.n), ',', -1) AS number
FROM (SELECT @row := @row + 1 AS n FROM (SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) d1, (SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) d2, (SELECT @row := -1) r) numbers
WHERE LENGTH(@array1) - LENGTH(REPLACE(@array1, ',', '')) >= numbers.n - 1) a
WHERE a.number NOT IN (SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(@array2, ',', numbers.n), ',', -1) AS number
FROM (SELECT @row := @row + 1 AS n FROM (SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) d1, (SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) d2, (SELECT @row := -1) r) numbers
WHERE LENGTH(@array2) - LENGTH(REPLACE(@array2, ',', '')) >= numbers.n - 1)) b;

這個查詢首先使用SUBSTRING_INDEX()DISTINCT子查詢從兩個數組中獲取唯一的數字列表。然后,將這兩個列表進行比較,使用NOT IN()語句篩選出只出現在數組1中的數值。最后,使用GROUP_CONCAT()函數將結果以逗號分隔的方式匯總顯示出來。

對于我們定義的這兩個數組,查詢結果將為:

1,2

因為數組1中只有數字1和2沒有在數組2中出現。