Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Sequential data read in MySQL/Perl

by choroba (Cardinal)
on Jul 06, 2016 at 21:34 UTC ( [id://1167336]=note: print w/replies, xml ) Need Help??


in reply to Sequential data read in MySQL/Perl

Hi justin423,

Having read your question several times, I can't make heads or tails from it. What is the schema of the database table? How do you store REC2 DATA3 DATA4 2 DATAX with 5 columns and RECZ 5 DATAX with 3 columns? Also, what do you mean by (NEW VALUE) ? Why is the first RECZ numbered with 5, but there's no number for the second RECZ?

If you just want to know how to persist a value across several iterations of a loop, the answer is simple: declare a variable before the loop.

#! /usr/bin/perl use warnings; use strict; my $grouping = q(); while (<DATA>) { my @columns = split; print "@columns $grouping\n"; if (@columns > 2) { $grouping = $columns[1] if q() eq $grouping; } else { $grouping = q(); } } __DATA__ REC1 DATAX DATA2 1 REC2 DATA3 DATA4 2 REC3 DATA5 DATA6 3 REC4 DATA7 DATA8 4 RECZ 5 REC1 DATAY DATA2 6 REC2 DATA3 DATA4 7 REC3 DATA5 DATA6 8 REC4 DATA7 DATA8 9 RECZ

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,

Replies are listed 'Best First'.
Re^2: Sequential data read in MySQL/Perl
by justin423 (Scribe) on Jul 06, 2016 at 22:20 UTC
    the table is a temp table that has the fields that are common across all of the rows coming in. (REC1 to RECZ above). the common identifier for REC1 to RECZ only appears on REC1, so i want to update the rec2, rec3, rec4 rows with the value in DATAX, which only appears in REC1. I was also trying to show that the value needs to be reset when the program encounters a RECZ, so that a new value is applied for the next group. How do I read the value from the database into a variable using DBI?
      I am also confused about what you are doing. If these 9 values "go together" somehow, then perhaps a table like what I show below is what you need? Each row is a "group" and each column contains "like data". Without some descriptive story re: post from Grandfather, its hard to say what you really need (which may be different than what you are asking for).
      1 DATAX DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 DATA8 2 DATAY DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 DATA8
        That is just about what I am asking for. A script to convert each group I encounter on the source file to be stored in a single row like you have done.
        That is just about what I am asking for. A script to convert each group I encounter on the source file to be stored in a single row like you have done.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1167336]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-20 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found