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密码致无法登录的解决方法
最近在给公司的内网开发用服务器装系统,然后装mysql居然就花了一天,原因是因为本人在CentOS下安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码而导致无法登录,通过查找了资料终于解决了,现在想方法分享给大家,有需要的朋友们可以参考借鉴。2016-11-11mysql导入sql文件报错 ERROR 2013 2006 2002
今天在做项目的时候遇到个问题,就是往mysql里导入sql文件的时候总是报ERROR 2013 2006 2002,研究了一番才找到解决办法,这里记录下来分享给大家2014-11-11MySQL生僻字插入失败的处理方法(Incorrect string value)
最近,业务方反馈有个别用户信息插入失败,报错提示类似Incorrect string value:"\xF0\xA5 .....看这个提示应该是字符集不支持某个生僻字造成的,需要的朋友可以参考下2017-05-05Can''t connect to MySQL server on ''localhost'' (10048)问题解决方
windows 2003服务器运行php的提示Can't connect to MySQL server on 'localhost' (10048), 下面来看下解决方法2013-09-09mysql中全连接full join...on...的用法说明
这篇文章主要介绍了mysql中全连接full join...on...的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
最新评论