mysql把一段數據變成一個臨時表
例子:有一組手機號,查詢mysql庫里有的是會員,沒有的標記為非會員,按序號順序顯示
1. 先把一組手機號作為一個字段
SELECT '15555555555,12222222222' AS phone FROM DUAL
效果:

2.把這個字段分割成一列數據
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. 關聯對應的mysql數據庫其他表,把字段對應好,查出來
SELECT
aaa.phone '會員手機號',
IF
( ISNULL( mmm.phone ), '非會員', '會員' ) '是否會員'
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.自帶排序的序號
SELECT
@1 := @1+1 AS '序號',
aaa.phone '會員手機號',
IF
( ISNULL( mmm.phone ), '非會員', '會員' ) '是否會員'
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效果:

如何將查詢結果作為臨時表
在MySQL中,我們可以利用子查詢的方式將查詢結果作為臨時表。具體的步驟如下:
首先,我們需要編寫一個查詢語句,用于獲取需要的數據。例如,我們要獲取某個表中所有年齡大于18歲的用戶,可以使用以下查詢語句:
SELECT * FROM users WHERE age > 18;
接下來,我們需要將上述查詢語句作為子查詢,并使用CREATE TEMPORARY TABLE語句將其結果保存為臨時表。例如,我們可以使用以下語句將查詢結果保存為名為temp_table的臨時表:
CREATE TEMPORARY TABLE temp_table AS (
SELECT * FROM users WHERE age > 18
);
現在,我們可以像使用普通表一樣使用臨時表了。例如,我們可以對臨時表進行排序操作:
SELECT * FROM temp_table ORDER BY age DESC;
最后,我們需要使用DROP TABLE語句刪除臨時表,以釋放資源。例如,我們可以使用以下語句刪除剛才創(chuàng)建的臨時表:
DROP TABLE temp_table;
示例代碼
以下是一個完整的示例代碼,演示如何將查詢結果作為臨時表,并對臨時表進行排序操作:
-- 創(chuàng)建臨時表,并將查詢結果保存為臨時表
CREATE TEMPORARY TABLE temp_table AS (
SELECT * FROM users WHERE age > 18
);
-- 對臨時表按照年齡降序排序,并獲取結果
SELECT * FROM temp_table ORDER BY age DESC;
-- 刪除臨時表
DROP TABLE temp_table;到此這篇關于mysql把一段數據變成一個臨時表的文章就介紹到這了,更多相關mysql 數據變成臨時表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
linux服務器清空MySQL的history歷史記錄 刪除mysql操作記錄
mysql歷史記錄上可能留下了很多敏感信息,比如密碼什么的,需及時清空歷史記錄,下面分享一下inux服務器清空MySQL的history歷史記錄的方法2014-01-01
在MySQL中使用mysqlbinlog flashback的簡單教程
這篇文章主要介紹了在MySQL中使用mysqlbinlog flashback的簡單教程,可以很方便地恢復數據,作者還列出了使用時一些需要注意的地方,需要的朋友可以參考下2015-05-05

