2009-06-22, 13:42
#1
Försöker jämföra två ganska lika tabeller i en databas där den nya tabellen (nytabell) innehåller de nya produkter som kommit till plus samma produkter som "gammaltabell". Jag vill alltså automatiskt få fram vilka som är nya och lista dessa. Den relevanta koden ser ni nedan.
Problemet är att det är 20-25 000 listade produkter i varje tabell och det verkar enormt tungt. Koden är med all säkerhet rätt kass då jag är relativt ny på detta så jag hoppas ni kan hjälpa mig att trimma den lite eller lösa problemet på något bättre sätt.
Problemet är att det är 20-25 000 listade produkter i varje tabell och det verkar enormt tungt. Koden är med all säkerhet rätt kass då jag är relativt ny på detta så jag hoppas ni kan hjälpa mig att trimma den lite eller lösa problemet på något bättre sätt.
mysql_select_db("ettan", $con);
mysql_query("CREATE TABLE nytabell(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
text VARCHAR(150))")
or die(mysql_error());
mysql_query("LOAD DATA LOCAL INFILE 'c:/wamp/www/testfil.txt' INTO TABLE
nytabell (text)");
$result = mysql_query("SELECT nytabell.text, gammaltabell.text2 FROM nytabell LEFT JOIN gammaltabell ON nytabell.text = gammaltabell.text2");
while($row = mysql_fetch_array($result)){
if($row['text2'] == null){
echo $row['text'];
echo "<br>";
}
}
mysql_query("DROP TABLE gammaltabell");
mysql_query("RENAME TABLE nytabell TO gammaltabell");
mysql_query("ALTER TABLE gammaltabell CHANGE text text2 VARCHAR(150)");
mysql_close($con);
?>
mysql_query("CREATE TABLE nytabell(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
text VARCHAR(150))")
or die(mysql_error());
mysql_query("LOAD DATA LOCAL INFILE 'c:/wamp/www/testfil.txt' INTO TABLE
nytabell (text)");
$result = mysql_query("SELECT nytabell.text, gammaltabell.text2 FROM nytabell LEFT JOIN gammaltabell ON nytabell.text = gammaltabell.text2");
while($row = mysql_fetch_array($result)){
if($row['text2'] == null){
echo $row['text'];
echo "<br>";
}
}
mysql_query("DROP TABLE gammaltabell");
mysql_query("RENAME TABLE nytabell TO gammaltabell");
mysql_query("ALTER TABLE gammaltabell CHANGE text text2 VARCHAR(150)");
mysql_close($con);
?>