mysql把一段數(shù)據(jù)變成一個臨時表
例子:有一組手機(jī)號,查詢mysql庫里有的是會員,沒有的標(biāo)記為非會員,按序號順序顯示
1. 先把一組手機(jī)號作為一個字段
SELECT '15555555555,12222222222' AS phone FROM DUAL
效果:
2.把這個字段分割成一列數(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)對應(yīng)的mysql數(shù)據(jù)庫其他表,把字段對應(yīng)好,查出來
SELECT aaa.phone '會員手機(jī)號', 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 '會員手機(jī)號', 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
效果:
如何將查詢結(jié)果作為臨時表
在MySQL中,我們可以利用子查詢的方式將查詢結(jié)果作為臨時表。具體的步驟如下:
首先,我們需要編寫一個查詢語句,用于獲取需要的數(shù)據(jù)。例如,我們要獲取某個表中所有年齡大于18歲的用戶,可以使用以下查詢語句:
SELECT * FROM users WHERE age > 18;
接下來,我們需要將上述查詢語句作為子查詢,并使用CREATE TEMPORARY TABLE語句將其結(jié)果保存為臨時表。例如,我們可以使用以下語句將查詢結(jié)果保存為名為temp_table的臨時表:
CREATE TEMPORARY TABLE temp_table AS ( SELECT * FROM users WHERE age > 18 );
現(xiàn)在,我們可以像使用普通表一樣使用臨時表了。例如,我們可以對臨時表進(jìn)行排序操作:
SELECT * FROM temp_table ORDER BY age DESC;
最后,我們需要使用DROP TABLE語句刪除臨時表,以釋放資源。例如,我們可以使用以下語句刪除剛才創(chuàng)建的臨時表:
DROP TABLE temp_table;
示例代碼
以下是一個完整的示例代碼,演示如何將查詢結(jié)果作為臨時表,并對臨時表進(jìn)行排序操作:
-- 創(chuàng)建臨時表,并將查詢結(jié)果保存為臨時表 CREATE TEMPORARY TABLE temp_table AS ( SELECT * FROM users WHERE age > 18 ); -- 對臨時表按照年齡降序排序,并獲取結(jié)果 SELECT * FROM temp_table ORDER BY age DESC; -- 刪除臨時表 DROP TABLE temp_table;
到此這篇關(guān)于mysql把一段數(shù)據(jù)變成一個臨時表的文章就介紹到這了,更多相關(guān)mysql 數(shù)據(jù)變成臨時表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux服務(wù)器清空MySQL的history歷史記錄 刪除mysql操作記錄
mysql歷史記錄上可能留下了很多敏感信息,比如密碼什么的,需及時清空歷史記錄,下面分享一下inux服務(wù)器清空MySQL的history歷史記錄的方法2014-01-01MySQL中大數(shù)據(jù)表增加字段的實現(xiàn)思路
最近遇到的一個問題,需要在一張將近1000萬數(shù)據(jù)量的表中添加加一個字段,但是直接添加會導(dǎo)致mysql 奔潰,所以需要利用其他的方法進(jìn)行添加,這篇文章主要給大家介紹了MySQL中大數(shù)據(jù)表增加字段的實現(xiàn)思路,需要的朋友可以參考借鑒。2017-01-01Mysql更新varchar存儲Json數(shù)據(jù)的操作方法
這篇文章主要介紹了Mysql更新varchar存儲Json數(shù)據(jù)的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12在MySQL中使用mysqlbinlog flashback的簡單教程
這篇文章主要介紹了在MySQL中使用mysqlbinlog flashback的簡單教程,可以很方便地恢復(fù)數(shù)據(jù),作者還列出了使用時一些需要注意的地方,需要的朋友可以參考下2015-05-05