Mam seznam cisel, item_no, a potrebuji vybrat ty, ktere z toho seznamu nejsou v databazi. Jak na to?
item_no IN (seznam) - vybere ty, co jsou na seznamu a shoduji se s db
item_no NOT IN (seznam) - vybere ty, jsou v db, ale nejsou na seznamu
a ja potrebuji prave tu treti moznost, rozdil seznam a to, co je v db: seznam - item_no IN (seznam)
Fórum › MySQL
Co ze seznamu neni v databazi
no, ja nasel, ze treba takto nejak
$str = implode("','",$files);
('".$str."') `a`
UNION DISTINCT
(SELECT `item_no` FROM `zbozi` WHERE `item_no` IN ('".$str."')) `b`
No, ale maler je, ze teda neumim napsat php pole jako array. Nebo, zatim nevim. A pak je tu ta potiz, ze souboru mam 70.000, takze jsem to chtel po 100, treba NOT IN () mi vyhodi vsechna cisla mimo pole, coz je dalsi problem, ze tam nektere nemaji soubory, treba.
Druha moznost je radek po radku. Coz mozna k tomu speje.
Treti moznost nabizi php jako array_unique nebo merge, ale to jsem dal nestudoval. Coz je zase zpet k obrim polim. To mozna pretece pamet.
Uz jsem to poresil pres to php asi nejak takto:
$files = array(123.jpg,...) // kde je prvnich 100 souboru
$files_no = array(123,...) // kde to je bez pripony
$str = implode("','",$files);
$q = SELECT `item_no` FROM `zbozi` WHERE `item_no` IN ('".$str."') ...
while(($row = mysql_fetch_array($result))!==false)
{
$db[] = $row['item_no'];
}
mysql_free_result($result);
$diff = array_merge($diff, array_diff($files_no,$db)); // po te 100 to pridavam postupne do pole
Problem je takovy, ze mam slozku, kde je 70.000 obrazku a potrebuju z tama vyhodit ty, ktere nemaji item_no v databazi. Nejen, ze jsem to omezil po te 100, ale jeste jsem tam dal max 1000 polozek, protoze limit POST je kolem 8MB, tak jsem to nechtel prehanet. Raci pocitam s mensim.
Nevim jestli to v Tvych podminkach jde, ale muzes pouzit tento postup:
1. Vypsat seznam souboru do souboru - napr.
dir *.jpg /B>files.txt
2. Nahrat ze souboru do tabulky v DB:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
3. Zpracovat v DB porovnanim 2 tabulek - WHERE ... NOT IN.
MySQL neumi EXCEPT.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Přidání seznamů v seznamu do 2.seznamu — založil Ahoj3
C++ řazení seznamu — založil Petr
Práce seznamu — založil pouk
Iterace v seznamu — založil kterosuom
Zarovnání seznamu — založil UrbiCZ
Moderátoři diskuze