Konstrukce SQL dotazu

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
WoiTa
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 07. říj 2004
Bydliště: Chrudim, Brno
Kontaktovat uživatele:

Konstrukce SQL dotazu

Příspěvek od WoiTa »

Zdravím, najde se zde dobrá duše, která pomůže s podmínkou sql dotazu?
Níže uvedená podmínka (to za WHERE) funguje korektně, ale jen pokud je atribut CisloSmlouvy(varchar) roven řetězci "1" nebo podobnému.
Problém nastane při exportu více smluv. Pak má CisloSmlouvy podobu třeba "1, 2" a LIKE už nedokáže rozluštit, že tam ta jednička nebo dvojka je. Přitom bych potřeboval pravý opak.
Schéma databáze bohužel moc měnit nemůžu. Leda tak přidat novou tabulku. Napadlo mě vytvořit si dočasnou tabulku s jedním atributem - číslem, který dostanu rozparsováním toho řetězce "1, 2, 3, ..." a tu pak nějak porovnávat. Nenapadá někoho elegantnější řešení?

Kód: Vybrat vše

SELECT * FROM DatabazeNEW WHERE (SELECT Count(ID) AS ExportsCount FROM ExportySmluv WHERE DatabazeNEW.ID LIKE CisloSmlouvy) = 0 
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: Konstrukce SQL dotazu

Příspěvek od OndraSter »

mysql query ( "ten tvůj dotaz" );

pak si vytáhneš všechny čísla do tvaru "1, 2, 3" atd.

A pak jen zavoláš SQL:

mysql query ( 'SELECT neco FROM tabulka WHERE cisloSmlouvy IN (1, 2, 3)' ); (za předpokladu, že cisloSmlouvy je INT)

Inspiruj se případně pomocí http://www.firstsql.com/tutor3.htm#predicate - tam maj přesnější popis toho IN.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Teuzz
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 25. zář 2004
Bydliště: Liberec, Praha
Kontaktovat uživatele:

Re: Konstrukce SQL dotazu

Příspěvek od Teuzz »

ideálně nebuďme prasátka a dejme za dotaz ještě středník, aby to bylo opravdu v SQL a ne v MySQL SQL :-P

mysql_query("SELECT neco FROM tabulka WHERE cisloSmlouvy IN (1, 2, 3);");


// OS - Tak já nepsal ani mysql_query ale mysql query, takže jsem očekával, že se tím jen inspiruje :roll:. Nemám ve zvyku říkat přesný kód, jen navádět - mým cílem je naučit ostatní, aby se nad tím zamysleli a ne jednoduše kopírovali.
Burn in hell.
Odpovědět

Zpět na „Programování a web“