I work with a proprietary server-side language that sits as a layer on top of a Oracle database. With this language, you can use dummy tables to take an existing record structure filled with data and run queries on that record structure joining to it as if it were a table.
Here's a simple example:
//DECLARE THE RECORD STRUCTURE
record data_out (
1 prsnl [*]
2 person_id = f8
2 full_name = vc
2 position = vc
2 status = vc
2 last_access_dt_tm = vc
2 role [*]
3 role_name = vc
3 role_id = f8
) with persistscript
//QUERY PEOPLE
select into "NL:"
from person p
where p.whatever_field = "QUALIFIER"
detail
a = a + 1
stat = alterlist(data_out->prsnl, a)
data_out->prsnl[a]->person_id = p.person_id
data_out->prsnl[a]->full_name = p.name_full_formatted
data_out->prsnl[a]->position = p.position
with time=10
//USE A DUMMY TABLE TO PULL IN MORE DATA FOR EACH PERSON
select into "NL:"
from (dumt d with seq = size(data_out->prsnl,5))
,rnd_role_def rrd
,rnd_r_assign_hx rah
plan d
join rah
where rah.team_id = data_in->team_id
and rah.prsnl_id = data_out->prsnl[d.seq]->person_id
and rah.handoff_dt_tm > cnvtdatetime(curdate-90,curtime)
join rrd
where rrd.role_id = rah.role_id
order by d.seq, rrd.role_name
head d.seq
i = 0
head rrd.role_name
i = i + 1
stat = altlist(data_out->prsnl[d.seq]->role, i)
data_out->prsnl[d.seq]->role[i]->role_id = rrd.role_id
data_out->prsnl[d.seq]->role[i]->role_name = rrd.role_name
with time=10
Does PHP+MySQL have anything like this? If so, could somehow point me to a link with more info or a how-to. Googling hasn't been turning up anything for me--probably searching for the wrong keywords.
Use temporary tables:
CREATE TEMPORARY TABLE temp1
A temporary table will persist through the current session. You can either define the fields of a temporary table through normal CREATE TABLE
syntax:
CREATE TEMPORARY TABLE temp1(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50),
)
... or you can create a temp table and allow query data to define the columns:
CREATE TEMPORARY TABLE temp1;
INSERT INTO temp1
SELECT id, name FROM normal_table
Documentation
CREATE TABLE
syntax - http://dev.mysql.com/doc/refman/5.1/en/create-table.html Three things that might be useful:
CREATE TABLE mem_t (id (int)) ENGINE=MEMORY;
) CREATE TEMPORARY TABLE temp_t (id (int));
) Note that a temporary table is visible only to the current connection, whereas Views and Memory Tables are shared resources (like regular tables).
Also have a look at these related questions on SO:
您可以使用临时表和INSERT SELECT语法来实现它,然后在以后删除该表-但是,这样做并不是最好的选择
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.