mysql把一段数据变成一个临时表

 更新时间:2024年02月01日 15:26:56   作者:码农的农  
这篇文章主要介绍了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语句删除临时表,以释放资源。例如,我们可以使用以下语句删除刚才创建的临时表:

DROP 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 temp_table;

到此这篇关于mysql把一段数据变成一个临时表的文章就介绍到这了,更多相关mysql 数据变成临时表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • CentOS下安装mysql时忘记设置root密码致无法登录的解决方法

    CentOS下安装mysql时忘记设置root密码致无法登录的解决方法

    最近在给公司的内网开发用服务器装系统,然后装mysql居然就花了一天,原因是因为本人在CentOS下安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码而导致无法登录,通过查找了资料终于解决了,现在想方法分享给大家,有需要的朋友们可以参考借鉴。
    2016-11-11
  • mysql导入sql文件报错 ERROR 2013 2006 2002

    mysql导入sql文件报错 ERROR 2013 2006 2002

    今天在做项目的时候遇到个问题,就是往mysql里导入sql文件的时候总是报ERROR 2013 2006 2002,研究了一番才找到解决办法,这里记录下来分享给大家
    2014-11-11
  • 浅析MySQL replace into 的用法

    浅析MySQL replace into 的用法

    在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。
    2014-06-06
  • MySQL插入json问题

    MySQL插入json问题

    今天小编就为大家分享一篇关于MySQL插入json问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 图文详解mysql5.7安装教程

    图文详解mysql5.7安装教程

    这篇文章主要以图文结合的方式为大家详细介绍了mysql5.7安装教程的相关资料,需要的朋友可以参考下
    2016-05-05
  • MySQL生僻字插入失败的处理方法(Incorrect string value)

    MySQL生僻字插入失败的处理方法(Incorrect string value)

    最近,业务方反馈有个别用户信息插入失败,报错提示类似Incorrect string value:"\xF0\xA5 .....看这个提示应该是字符集不支持某个生僻字造成的,需要的朋友可以参考下
    2017-05-05
  • Can''t connect to MySQL server on ''localhost'' (10048)问题解决方法

    Can''t connect to MySQL server on ''localhost'' (10048)问题解决方

    windows 2003服务器运行php的提示Can't connect to MySQL server on 'localhost' (10048), 下面来看下解决方法
    2013-09-09
  • 一台linux主机启动多个MySQL数据库的方法

    一台linux主机启动多个MySQL数据库的方法

    这篇文章主要介绍了一台linux主机启动多个MySQL数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • mysql中全连接full join...on...的用法说明

    mysql中全连接full join...on...的用法说明

    这篇文章主要介绍了mysql中全连接full join...on...的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • MAC版修改MySQL初始密码的方法

    MAC版修改MySQL初始密码的方法

    这篇文章主要介绍了MAC版修改MySQL初始密码的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02

最新评论