当前位置:Gxlcms > mysql > mysql利用中间值来暂时性存储值_MySQL

mysql利用中间值来暂时性存储值_MySQL

时间:2021-07-01 10:21:17 帮助过:24人阅读

bitsCN.com


mysql利用中间值来暂时性存储值

mysql在查询数据的时候,有时候后面的语句会用到查出来的某个值,

这时候你会考虑怎么把这个值存起来,有两个方法来达到目的:

一。利用自定义值。二。利用中间表。

下面会分别说一下这两个方法如何调用:

1.如何把某张表的某个值存到自定义变量上

这个利用内存来存值

SQL代码

#定义@amax_price为常量值

mysql> set @amax_price=(select max(FScoreCount) from Tbl_User);

Query OK, 0 rows affected (0.00 sec)

mysql> select * from Tbl_User where FScoreCount= @amax_price;

+---------+-----------+-------+------+-------------+------------+--------------+

--------+--------+---------+---------+---------+---------+--------------+-------

-------+---------+---------------------+------------+--------------+------------

---------+----------------+-------+

| FUserId | FQQ | FNick | FPwd | FScoreCount | FVoteCount | FInviteCount |

FBType | FLType | FEnable | FValue1 | FValue2 | FValue3 | FValue4 | FValue

5 | FValue6 | FTime | FDate | FIp | FLastLoginT

ime | FLastLoginDate | FMemo |

+---------+-----------+-------+------+-------------+------------+--------------+

--------+--------+---------+---------+---------+---------+--------------+-------

-------+---------+---------------------+------------+--------------+------------

---------+----------------+-------+

| 1 | 455342107 | | | 22 | 0 | 2 |

0 | 0 | 0 | 1 | 0 | | 2011-08-15_3 | 2011-0

8-10_2 | | 2011-08-10 10:02:40 | 2011-08-10 | 192.168.1.34 | 2011-08-16

14:30:18 | 2011-08-16 | |

+---------+-----------+-------+------+-------------+------------+--------------+

--------+--------+---------+---------+---------+---------+--------------+-------

-------+---------+---------------------+------------+--------------+------------

---------+----------------+-------+

2.如何把某张表的某个值存到临时表

SQL代码

#查出Tbl_User表中所有值

mysql> select FQQ,FScoreCount from Tbl_User;

+-----------+-------------+

| FQQ | FScoreCount |

+-----------+-------------+

| 455342107 | 22 |

| 24222 | 0 |

| 345333 | 5 |

| 664444 | 5 |

| 234324 | 0 |

| 137543511 | 5 |

| 519422206 | 5 |

| 234222 | 0 |

| 14234 | 5 |

| 1242354 | 5 |

| 111565 | 5 |

| 342323 | 0 |

| 234322 | 0 |

| 543244 | 0 |

+-----------+-------------+

14 rows in set (0.00 sec)

#把最大值存储到临时表tmp上

mysql> create table tmp select max(FScoreCount) as max_score from Tbl_User;

Query OK, 1 row affected (0.05 sec)

Records: 1 Duplicates: 0 Warnings: 0

#查出临时表结构

mysql> select * from tmp;

+-----------+

| max_score |

+-----------+

| 22 |

+-----------+

1 row in set (0.00 sec)

mysql> show tables;

+----------------------------------+

| Tables_in_DB_Nissansunny_2011_08 |

+----------------------------------+

| Tbl_Code |

| Tbl_Comment |

| Tbl_File |

| Tbl_InviteHistory |

| Tbl_LotteryCount |

| Tbl_LotteryHistory |

| Tbl_QQshow |

| Tbl_Score |

| Tbl_ScoreDetail |

| Tbl_User |

| Tbl_UserAward |

| Tbl_UserProfile |

| Tbl_VoteHistory |

| tmp |

+----------------------------------+

14 rows in set (0.00 sec)

两张方法各有差异:自定义变量是利用了内存,临时表利用了数据库空间。。哈哈,建议数据量大还是用临时表好一点。。。

bitsCN.com

人气教程排行