mysql把一段數(shù)據(jù)變成一個(gè)臨時(shí)表
例子:有一組手機(jī)號(hào),查詢mysql庫(kù)里有的是會(huì)員,沒(méi)有的標(biāo)記為非會(huì)員,按序號(hào)順序顯示
1. 先把一組手機(jī)號(hào)作為一個(gè)字段
SELECT '15555555555,12222222222' AS phone FROM DUAL
效果:

2.把這個(gè)字段分割成一列數(shù)據(jù)
SELECT
substring_index(
substring_index( a.phone, ',', b.help_topic_id + 1 ),
',', - 1 ) AS phone
FROM
( SELECT '15555555555,12222222222' AS phone FROM DUAL ) a
INNER JOIN mysql.help_topic b ON b.help_topic_id < (
length( a.phone ) - length(
REPLACE ( a.phone, ',', '' )) + 1
)效果:

3. 關(guān)聯(lián)對(duì)應(yīng)的mysql數(shù)據(jù)庫(kù)其他表,把字段對(duì)應(yīng)好,查出來(lái)
SELECT
aaa.phone '會(huì)員手機(jī)號(hào)',
IF
( ISNULL( mmm.phone ), '非會(huì)員', '會(huì)員' ) '是否會(huì)員'
FROM
(
SELECT
substring_index(
substring_index( a.phone, ',', b.help_topic_id + 1 ),
',', - 1 ) AS phone
FROM
( SELECT '15555555555,12222222222' AS phone FROM DUAL ) a
INNER JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.phone ) - length( REPLACE ( a.phone, ',', '' )) + 1 )) aaa
LEFT JOIN member mmm ON aaa.phone = mmm.phone效果:

4.自帶排序的序號(hào)
SELECT
@1 := @1+1 AS '序號(hào)',
aaa.phone '會(huì)員手機(jī)號(hào)',
IF
( ISNULL( mmm.phone ), '非會(huì)員', '會(huì)員' ) '是否會(huì)員'
FROM
(
SELECT
substring_index(
substring_index( a.phone, ',', b.help_topic_id + 1 ),
',', - 1 ) AS phone
FROM
( SELECT '15555555555,12222222222' AS phone FROM DUAL ) a
INNER JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.phone ) - length( REPLACE ( a.phone, ',', '' )) + 1 )) aaa
LEFT JOIN member mmm ON aaa.phone = mmm.phone,(SELECT @1 := 0 ) r效果:

如何將查詢結(jié)果作為臨時(shí)表
在MySQL中,我們可以利用子查詢的方式將查詢結(jié)果作為臨時(shí)表。具體的步驟如下:
首先,我們需要編寫一個(gè)查詢語(yǔ)句,用于獲取需要的數(shù)據(jù)。例如,我們要獲取某個(gè)表中所有年齡大于18歲的用戶,可以使用以下查詢語(yǔ)句:
SELECT * FROM users WHERE age > 18;
接下來(lái),我們需要將上述查詢語(yǔ)句作為子查詢,并使用CREATE TEMPORARY TABLE語(yǔ)句將其結(jié)果保存為臨時(shí)表。例如,我們可以使用以下語(yǔ)句將查詢結(jié)果保存為名為temp_table的臨時(shí)表:
CREATE TEMPORARY TABLE temp_table AS (
SELECT * FROM users WHERE age > 18
);
現(xiàn)在,我們可以像使用普通表一樣使用臨時(shí)表了。例如,我們可以對(duì)臨時(shí)表進(jìn)行排序操作:
SELECT * FROM temp_table ORDER BY age DESC;
最后,我們需要使用DROP TABLE語(yǔ)句刪除臨時(shí)表,以釋放資源。例如,我們可以使用以下語(yǔ)句刪除剛才創(chuàng)建的臨時(shí)表:
DROP TABLE temp_table;
示例代碼
以下是一個(gè)完整的示例代碼,演示如何將查詢結(jié)果作為臨時(shí)表,并對(duì)臨時(shí)表進(jìn)行排序操作:
-- 創(chuàng)建臨時(shí)表,并將查詢結(jié)果保存為臨時(shí)表
CREATE TEMPORARY TABLE temp_table AS (
SELECT * FROM users WHERE age > 18
);
-- 對(duì)臨時(shí)表按照年齡降序排序,并獲取結(jié)果
SELECT * FROM temp_table ORDER BY age DESC;
-- 刪除臨時(shí)表
DROP TABLE temp_table;到此這篇關(guān)于mysql把一段數(shù)據(jù)變成一個(gè)臨時(shí)表的文章就介紹到這了,更多相關(guān)mysql 數(shù)據(jù)變成臨時(shí)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL8.0 DDL原子性特性及實(shí)現(xiàn)原理
這篇文章主要介紹了MySQL8.0 DDL原子性特性及實(shí)現(xiàn)原理,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07
innodb存儲(chǔ)引擎修改表共享空間為獨(dú)立空間
最近在優(yōu)化mysql innodb存儲(chǔ)引擎,把共享表空間轉(zhuǎn)換成獨(dú)立表空間,下面是詳細(xì)步驟2014-01-01
mysql 5.7.15 安裝配置方法圖文教程(windows)
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.15 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
MySQL日志專項(xiàng)之redo log和undo log介紹
MySQL日志記錄了MySQL數(shù)據(jù)庫(kù)日常操作和錯(cuò)誤信息,MySQL有不同類型的日志文件(各自存儲(chǔ)了不同類型的日志),從日志當(dāng)中可以查詢到MySQL數(shù)據(jù)庫(kù)的運(yùn)行情況、用戶操作、錯(cuò)誤信息等2022-08-08

