Hirdetés
- eBay-es kütyük kis pénzért
- Brogyi: CTEK akkumulátor töltő és másolatai
- Elektromos rásegítésű kerékpárok
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Real Racing 3 - Freemium csoda
- hcl: Poco F2 Pro facepalm
- Parci: Milyen mosógépet vegyek?
Új hozzászólás Aktív témák
-
chabeee
aktív tag
válasz
PumpkinSeed
#2297
üzenetére
igen az megvolt

-
Akcept
tag
válasz
Sk8erPeter
#2279
üzenetére
Csak szép csendben kérdezem meg miért is nem lehet azt az aposztrófot másra cserélni, és akkor a kecske is jóllakik, meg a káposzta is megmarad. Azaz a cégnévben benne lesz az aposztróf, az adatbázisban meg nem:
$szoveg = str_replace("\'","'",$szoveg);
aztán jöhet egyéb védelem is. Persze lehet én értelek félre benneteket... -
chabeee
aktív tag
Sziasztok,
MySQL-t szeretnék használni és abban létrehozni egy táblát, ami tartalmaz egy másik táblára mutató idegen kulcsot. Így szeretném létrehozni:
"CREATE TABLE KONYVEK"+
" (ISBN INT,"+
"konyv_id INT PRIMARY KEY NOT NULL,"+
"cim CHAR(50),"+
"szerzo CHAR(50),"+
"FOREIGN KEY(user_id) REFERENCES FELHASZNALOK(user_id),"+
"allapot INT,"+
"kiadas_eve INT)";Viszont a Foreign key-es sorra exception-t kapok, és nem értem, miért, eddig ahol utána néztem mindenhol így írják.
hiba:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Key column 'user_id' doesn't exist in tablepedig létezik,
előre is köszi
-
jocomen
aktív tag
mysql-ben ha egy oszlop adattípusát módosítom boolean-ra, miért nem marad úgy, miért vált vissza tinyint-re, amit soha nem adtam meg neki ??
kapcsolatokat szintén nem hajlandó berajzolni: néha megy, néha nem ... tkm ki van vele
Ennyire bugos a xampp? -
bpx
őstag
válasz
PumpkinSeed
#2286
üzenetére
Azért, mert alapértelmezett esetben a TO_CHAR dátum bemenet esetén a lehetséges leghosszabb kimenetre készülve rak paddinget (extra space-ek), ezért amikor a te 'THURSDAY'-t vársz, ott valójában 'THURSDAY '-t kapsz, mert a 'WEDNESDAY' a leghosszabb, és minden napot 9 karakterre egészít ki emiatt.
Ha ezt nem szeretnéd, akkor a 'DAY' helyett használj 'FMDAY'-t, amiben az FM kikapcsolja a paddinget.
Ezen kívül:
- az UPPER felesleges, mert a 'DAY' miatt eleve nagybetűsen kapod az eredmény ('day' - kisbetű)
- ha a TO_CHAR-t a megfelelő NLS paraméterrel kiegészíted, akkor rögtön magyarul kapod a napot
- az INITCAP függvénnyel lehet a szavak kezdőbetűjét nagybetűre cserélni, ha ez az igényPl:
SQL> SELECT INITCAP(TO_CHAR(TO_DATE('1994-01-06','YYYY-MM-DD'),'FMDAY', 'NLS_DATE_LANGUAGE = HUNGARIAN')) AS VALAMI FROM DUAL;
VALAMI
------------
Csütörtök -
PumpkinSeed
addikt
SELECT
case UPPER(TO_CHAR(TO_DATE('1994-01-06','YYYY-MM-DD'),'DAY')) WHEN 'THURSDAY' THEN 'CSÜTÖRTÖK'
WHEN 'MONDAY' THEN 'HÉTFŐ'
else 'Vasárnap' END AS Valami
from dual;Valamiért mindig az ELSE ág hajtódik végre holott Csütörtököt kellene mondjon.
-
PumpkinSeed
addikt
Köszönöm a segítségeteket.

-
Sk8erPeter
nagyúr
válasz
PumpkinSeed
#2281
üzenetére
Például beillesztésnél tudod felhasználni a szekvenciát.
Vegyünk egy nagyon egyszerű példát: van egy supplier nevű táblád (az általad létrehozott supplier_seq alapján), első mezője egy int id, ami primary key is egyben. Másik mezője legyen a példa kedvéért egy name mező, nvarchar2(50) típussal.
Feltöltesz valami újat, pl.:insert into supplier
values (supplier_seq.nextval, 'blabla');A lényeg tehát a supplier_seq.nextval, ezzel tudod kivenni a szekvencia soron következő értékét.
-
Ablakos
addikt
válasz
PumpkinSeed
#2281
üzenetére
Mi az hogy lefut? Létrehoztál egy sequencia objektumot. Ha létrehozol egy táblát az sem "fut le".
Hivatkozhatsz a pseudooszlopaira nextval vagy curval-lal.
tehát: select supplier_seq.nextval from dual; A sequencia következő elemét adja. Kiválóan alkalmazható egy unique key megszorítással ellátott oszlopot egyedi azonosítóval ellátni. -
bpx
őstag
válasz
PumpkinSeed
#2281
üzenetére
első találat
-
PumpkinSeed
addikt
válasz
martonx
#2280
üzenetére
Köszönöm megint.
Igen azt tudom, hogy mire jó.
De,CREATE SEQUENCE supplier_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;itt ez a kód de, hogy lehet ezzel műveletet végezni? Mert ez most lefut 99999^2x de semmit nem csinál. Miképpen lehet ezt valami insert into utasítás mellé tenni?

-
martonx
veterán
válasz
PumpkinSeed
#2277
üzenetére
Sémákkal tudsz adatbázisokat / adatbázis részeklet elkülöníteni. Olyan ez, mint programozásban a namespace.
Sequence: már a nevében benne van, hogy mi ez, és mire jó. Nem fogod kitalálni, egy folyamatosan növekvő számláló. Hogy mire jó azt a képzeletedre bízom, pl. adatbázis sorokat azonosítani.
-
Sk8erPeter
nagyúr
válasz
bambano
#2278
üzenetére
Hinnnye, de fárasztó vagy.
Ezeket az agymenéseket miért nem rakod inkább OFF-ba?
Jójó, legyen igazad, rohadjon meg a júzer, és ne akarjon feltölteni aposztrófot tartalmazó stringet, hát mégis mi az anyját képzel??
A cégneve tartalmaz aposztrófot? Kapja be, menjen szépen a Cégbíróságra, változtassa meg! HÁNEHOGYMÁHE!"az elképzelés, hogy nem foglalkozom az inputtal, mert a prepared statement elvileg véd az sql injection ellen, hamis biztonságérzetet ad. pláne egy olyan korszakban, amikor crontabból küldik a heti snowden dokumentet"
Mi van, emba'?
Valóban sok az összefüggés az NSA és az aposztrófok között, olyannyira, hogy csak a "biztonságérzet" szó használata miatt nyilván tök indokolt volt ilyen moslékot idekeverni.
Mondjuk most pont tök szórakoztató ilyeneket olvasgatni, amikor valaki túlheveskedi a kommentjeit, de valószínűleg kicsit más hangulatban írjuk épp a hsz.-einket. 
-
válasz
Sk8erPeter
#2276
üzenetére
"nem szükséges helyettem megfogalmazgatni bármit is": rendben, akkor maradjon a te megfogalmazásod, ami egyébként helytelen.
"miért merül fel egyáltalán a para, hogy ez SQL Injectiont okozhatna": nem értem. aposztróftól nem merül fel, hogy sql injection lehetne? de, felmerül. ettől egy teljesen független kérdés, hogy az adatbáziskapcsolatod kezelése védve van-e az sql injection ellen vagy sem. ha nem ellenőrzöd az inputot ilyen ellen, akkor lemondasz a védelem egy lehetséges szintjéről.
szerk: az elképzelés, hogy nem foglalkozom az inputtal, mert a prepared statement elvileg véd az sql injection ellen, hamis biztonságérzetet ad. pláne egy olyan korszakban, amikor crontabból küldik a heti snowden dokumentet.
-
PumpkinSeed
addikt
Újabb Oracle SQL-el kérdés, vagyis kettő.
Az egyik a sémákhoz kapcsolódik. Nem értem, hogy mik is ezek hol is használják, és miért. Azt olvastam róla, hogy lehet séma szinte minden sql objektum, de hogyan is, meg miként is?
Illetve, a másik a szekvenciákkal. Ha létrehozok egy szekvenciát a CREATE SEQUENCE utasítással akkor azt azután hogyan tudom használni?
-
Sk8erPeter
nagyúr
válasz
bambano
#2275
üzenetére
Köszönöm, nem szükséges helyettem megfogalmazgatni bármit is, magamtól is megy, meg úgy látom, így is sikerült pár perccel később felfognod.

Szerintem meg nem, nem természetes, hogy tiltod az aposztrófot egy cégnévben, ahogy az sem, hogy miért merül fel egyáltalán a para, hogy ez SQL Injectiont okozhatna, ha normálisan prepared statementeket használsz, de nekem mindegy.
-
válasz
Sk8erPeter
#2273
üzenetére
no, akkor megfogalmazom helyetted: azt gondolod, hogy azért félek az sql injectionra alkalmas karakterektől, mert a program többi része nincs ellene felkészítve.
"AZÉRT tiltod az aposztróf bevitelét, mert alkalmas lehetne SQL Injectionre...": igen, azért tiltom, de ez, szerintem, természetes.
-
válasz
Sk8erPeter
#2273
üzenetére
attól, hogy a zseton páncélban van, még bezárom az ajtót

mondjuk az is igaz, hogy a program, amit írtam, nem széles körnek szól, de legalább kényes adatok vannak benne...
-
Sk8erPeter
nagyúr
válasz
bambano
#2272
üzenetére
Azt írtad, "Én egyáltalán nem hagyom, hogy sql injectionra alkalmas karaktert bevigyen az user.", ebből arra lehetne következtetni, hogy nálad a felhasználótól érkező aposztróf már alkalmas lehet SQL Injectionre, amitől tartani kell, tehát jobb, ha már az alkalmazásban kiszedjük, mielőtt feltöltenénk adatbázisba.
De én is csak szúrkálódom, nem kell ám mindent komolyan venni. 
Igaz, az összefüggést a két dolog közt még mindig nem értem, hogy AZÉRT tiltod az aposztróf bevitelét, mert alkalmas lehetne SQL Injectionre...

-
válasz
Sk8erPeter
#2271
üzenetére
ezt a mondatodat nem teljesen értem. nem parázok az sql injectiontól, egyszerűen kitiltottam a lehetőségét is.
-
válasz
Sk8erPeter
#2269
üzenetére
puhány vagy

-
Sk8erPeter
nagyúr
válasz
csabyka666
#2268
üzenetére
Eleve rossz a megközelítésed, ilyet SOHA nem csinálunk, nem konkatenálunk query-t változókkal, prepared statementeket használunk, ahogy a PHP topicban neked már vagy hússzor leírtuk, és a probléma meg van oldva.
(#2266) bambano :
Őő, hát azért az aposztróf vagy épp idézőjel karakter talán nem egy olyan extra karakter, ami miatt hibát kéne dobni a felhasználónak... lásd épp az említett példát. -
Más jellegű kérdés. Számít az valahol is, hogy az SQL query-ben mikor használok \"$valtozo\"-t, vagy '$valtozo'-t vagy simán $valtozo-t, netán '".$valtozo."'-t? Úgy vettem észre, hogy többféleképpen is működik, szóval nem tudom, hogy melyik a helyes...vagy teljesen mindegy ez? Működjön, és kész?
-
-
válasz
csabyka666
#2263
üzenetére
Én egyáltalán nem hagyom, hogy sql injectionra alkalmas karaktert bevigyen az user. Ellenőrizni szoktam, hogy a bevitt adatban van-e ilyen karakter, és ha igen, hibát dobok. Legyen meg pontosvessző meg aposztróf nélkül.
-
válasz
PumpkinSeed
#2264
üzenetére
Jogos, azt nem mondtam, hogy PHP-ben kellene megoldanom. Irány a PHP topic...
-
PumpkinSeed
addikt
válasz
csabyka666
#2263
üzenetére
Ez php függvény nem SQL: mysql_real_escape_string()
-
Üdv ismét!
SQL injection ellen mi (vagy mik) a legjobb függvények? Ezt találtam: mysql_real_escape_string(), és kérdeznélek benneteket, hogy ez elegendő, vagy küldjek rá még másik függvényeket is?
(Nem OOP a projekt, hanem az alap mysql_* függvényeket használom.)Más: eddig ha ' (aposztróf) karakter szerepelt a beszúrt mezőben, akkor mindig hibát dobott az SQL. Most, hogy lekezeltem minden beviteli mezőt mysql_real_escape_string() függvénnyel, már bekerülnek az '-os stringek is az adatbázisba. Ez így rendben van, vagy ezzel nyitottam egy biztonsági rést?
-
-
DNReNTi
őstag
válasz
csabyka666
#2260
üzenetére
Akkor jó hírem van: jól csináltad. Az adatbázis pedig azért nem engedi a már emlegetett parancsokat mert a kulcskapcsolat az üres táblákra is érvényes. Például kitörölnéd a felhasznalok táblát, akkor mit vinnél fel a kapcsolati táblába. Egyébként ebben az egyszerű példában, ha először a kapcsolati táblát törlöd, akkor megszűnnek a kulcskapcsolatok, így törölhető / kiüríthető lesz a többi is.

-
-
DNReNTi
őstag
válasz
csabyka666
#2257
üzenetére
azt gondoltam, hogy én állítottam be valamit rosszul
Megint azt tudom írni, attól függ mi a cél.
Külső kulcsot akkor használsz amikor egy másik tábla elsődleges kulcsára akarsz mutatni, ez egy szigorú megszorítás, az adatbázis csak meglévő értéket enged ide felvinni. Jó példa mondjuk egy bármilyen (1:1, 1:n, n:m) kapcsolati tábla. A legegyszerűbb példa hogy érthető legyen:
3 táblád van: felhasznalok, hozzaferes_szintek, felhasznalok_hozzaferese.
Itt a kapcsolati tábla a felhasznalok_hozzaferese összesen két mezővel: felhasznalo_id és hozzaferes_szint_id, mindkettő külső kulcs. Ez tipikus, egyszerű esete a külső kulcs használatának, hogy visszatérjek az eredeti gondolathoz, ha ilyesmire használod, akkor jól használod.
-
-
válasz
DNReNTi
#2255
üzenetére
Igazából nem fontos, hogy nullázni tudjam, csak tesztelés fázisban vagyok az oldallal, aztán azt gondoltam, hogy én állítottam be valamit rosszul, és azért nem engedi törölni. Főleg azért gondoltam, hogy én szúrtam el, mert teljesen üres táblákon sem működik, de ezek szerint nem ott van a gond, hanem egyszerűen az adatbázis nem fogja sohasem engedni.
Marad a törlés, és újra létrehozás. Azzal nullázódnak az indexek, és végülis az a cél...
-
jocomen
aktív tag
válasz
csabyka666
#2254
üzenetére
Lehet, h többgyerekes?
Közvetett hivatkozás?Ha a kapcsolat kiiktatásával törölsz, és nem minden táblát, azaz valamelyikben marad hivatkozás, akkor ha visszarakod a kapcsolatot, szerintem azért is hibát dob. Nem vagyok biztos, h ilyenkor nullázódik a kulcs.
-
DNReNTi
őstag
válasz
csabyka666
#2252
üzenetére
Nem is egészen értem pontosan mi is a cél. Jobban mondva a célt értem, csak azt nem miért van rá szükség. Egyébként egy tipp: én minden táblában használok egy "active" nevű mezőt. Ez mindig az utolsó, boolean, default: 1. Minden lekérdezésben szerepel a WHERE active = 1; tehát ha "törölni" akarok egyszerűen csak inaktiválom azt a rekordot, és az "megszűnik" létezni az oldal számára. Lehet csak az én hülyeségem, de szerintem adatbázisból törlést kerülni kell amennyire lehet. Hozzáteszem: éles oldalaknál, amíg tesztelsz és telehányod sallanggal az adatbázist akkor persze érdemes legyalulni. Erre pedig a tökéletes módszer ha exportálod csak a struktúrát, eldobod az összes táblát, majd importálod a struktúrát. Lehet van erre szebb megoldás, ha van, engem is érdekel.
-
-
jocomen
aktív tag
válasz
csabyka666
#2250
üzenetére
Lehet félreértem a problémát, de ez nem az, h nem törölhetsz a szülőtáblából, amíg a gyerektáblában van rá hivatkozás? Azaz fordított sorrendben tudod törölni.
Ha fontos, h nullázódjon az id, akkor én kiíratnám scriptbe, és azzal hoznám létre újra az adatbázist.
-
-
DNReNTi
őstag
válasz
csabyka666
#2250
üzenetére
A DROP sem működik ha kulcskapcsolatok vannak a táblák között. A FOREIGN_KEY_CHECKS ki (és be) kapcsolása működő módszer, ha favágó ha nem, de én csak teszteléskor használom, pl ha ki kell nullázzak egy adatbázist, vagy csak néhány táblát. Nem véletlen nem működik se a DROP, se a DELETE se a TRUNCATE, így ezt egy éles oldalon felejtsd el.
Kulcskapcsolatok okkal vannak egy adatbázisban. -
Üdv mindenkinek!
Szeretném üríteni a tábláimat, hogy az indexek visszaálljanak nullára, és teljesen üresek legyenek a táblák.
Szerintem nektek már ismerős lesz, ezt kapom: #1701 - Cannot truncate a table referenced in a foreign key constraint [...]
A táblákat úgy hoztam létre, hogy minden "FOREIGN KEY" után odaírtam az "ON DELETE CASCADE ON UPDATE CASCADE"-t, de ezzel sem javult a helyzet. Olvastam, hogy ha a "FOREIGN_KEY_CHECKS = 0"-t beállítjuk, majd ürítjük a táblát, és visszaállítjuk a "FOREIGN_KEY_CHECKS"-t, akkor működik az ürítés, de ez gondolom a favágó módszer...szóval nincs valami egyszerűbb megoldás?Ha újra kell tervezni hozzá az adatbázist, akkor tárgytalan, mert lehet, hogy sohasem fogom használni az ürítést, vagy ha mégis használom, akkor minden táblát ürítek, szóval akkor már inkább DROP-olom, és létrehozom újra...
-
DopeBob
addikt
válasz
V.Stryker
#2244
üzenetére
Bőven jó ez a 2012-höz is

Microsoft® SQL Server® 2012 Express
ENU\x64\SQLEXPRADV_x64_ENU.exe ezt töltsd el és majd telepítésnél kiválasztod, hogy mi kell, ebben benne van alapból a Management Studio is.
-
V.Stryker
nagyúr
Sziasztok,
Ha jól tudom,akkor az MS-SQL-nek van ingyenes verziója. Ilyen 2000 vagy 2005 -ös verziót honnan tölthetnék le?

-
Ablakos
addikt
válasz
PumpkinSeed
#2237
üzenetére
Mire való? Jó nagyot szívni, mire megtalálja a fejlesztő, melyik rekord vajon miért nem akar bemenni az adatbázisba

-
martonx
veterán
válasz
PumpkinSeed
#2239
üzenetére
Van két adathalmazod. Az egyik SQL táblában, a másik meg egy szöveg fileban mondjuk vesszővel elválasztva.
Mit teszel, ha a kettő közös metszetét kellene meghatároznod?
Persze elkezdheted mindkettőt lekérni, majd memóriában for-okkal összeforgatni, és ifekkel ellenőrizni.
Vagy fogod, feltöltöd a csv-det egy ilyen external táblába, és egy szimpla sql select-el megkapod a közös halmazt.
Kapisgálod, hogy mire jó ez? -
bpx
őstag
válasz
PumpkinSeed
#2237
üzenetére
Az, hogy odamásolsz pl. egy CSV file-t és tudsz belőle úgy lekérdezni, mintha közönséges tábla lenne.
-
PumpkinSeed
addikt
Oracle SQL-hez lenne kérdésem. Vannak ezek az external táblak, nem nagyon értem, hogy mire valók ezek!?
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY def_dir1
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
FIELDS (employee_number CHAR(2),
employee_dob CHAR(20),
employee_last_name CHAR(18),
employee_first_name CHAR(11),
employee_middle_name CHAR(11),
employee_hire_date CHAR(10) date_format DATE mask
"mm/dd/yyyy“))
LOCATION ('info.dat'));Van egy leírás ami megmondja, hogy az adott utasítás részek mit csinálnak, de az nem derül ki belőle, hogy mi is a tényleges haszna ennek.
-
-
-
cacattila
csendes tag
válasz
csabyka666
#2233
üzenetére
talán ilyesmire gondolsz?
[link] -
Üdv mindenkinek!
Tudtok valami módot arra, hogy milyen módon lehet azt visszajeleztetni mysql-lel, ha egy táblában történt változás?
Úgy módosítok egy táblát, hogy feltételhez kötöm, hogy egy felhasználó módosíthassa a rekordokat, avagy sem. Ezt úgy érem el, hogy PHP alól a jogosultságnak megfelelően alakítom ki a lekérdezés szövegét. Le is fut, és jól is csinálja, amit csinál, viszont ha így akarom megtudni az eredményt:
if ( mysql_query( $query ) ) {
echo "siker";
}
akkor minden esetben "siker"-t kapok vissza, én pedig csak akkor szeretném ezt visszakapni, ha tényleg módosult valami a táblázat adott sorában - az előző állapothoz képest.Szóval ha lefutott a kifejezés, de nem változtatott semmit a táblán, akkor azt akarom visszakapni, hogy "nincs jogosultságod".
Nem tudom, mennyire volt érthető a problémám, de köszönöm a segítséget előre is!

-
diegho
nagyúr
válasz
PumpkinSeed
#2229
üzenetére
Csak egy visszatöltő programja van, ami már előre kimentett adatbázist tud visszatölteni. MS SQL 2005-öt használ szerverként. Fogalmam sincs mit tehetnék. Amikor csak rámásolom az adatbázist, akkor a program látja, hogy ott vannak a cégek, de megnyitni és kimenteni nem tudom őket.
-
diegho
nagyúr
Sziasztok!
Lenne egy problémám. Adott egy kulcs-szoft könyvelő program, ami SQL adatbázisba menti a dolgait. A vinyó, amin ment a progi és az adatbázis meghalt, de le tudtam menteni róla a program files-t. A probléma az, hogy ebben a kulcs programban, csak úgy tudok adatokat menteni, ha feltelepítem újra és a saját mentő részével kimentem. Ez a mentő rész értelemszerűen az sql-ből menti ki a dolgait, de ugyebár nekem csak a régi kimásold sql mappám van meg, amiben ott van minden, de hiába másolom be az újba, azt mondja, hogy nem tudja kimenteni, mert pár hivatkozás nem egyezik. Mit tudok tenni?
-
-
jocomen
aktív tag
válasz
sztanozs
#2223
üzenetére
"1-sok" kapcsolattal: a Tábla2 kulcsa szerepel a Tábla1-ben is külső kulcsként, csak a példába nem írtam bele.
Mondjuk így nézne ki:Tábla2 PK:t2_id; c -----1-sok------- Tábla1 PK:t1_id; FK:t2_id; a; b.
Tábla1 "b" oszlopánál kéne megadni a következő kifejezést az Access számára érthető módon: =c*a
-
jocomen
aktív tag
Hali
Access-ben szeretnék egy mezőbe (b) számított értéket íratni: b=a*c
Tábla1: t1_id; a; b
Tábla2: t2_id; cA gond, h még táblán belüli oszlop értékével sem enged számolni. Pl ha "b" cellában, érvényességi szabályként megadom: =a*2 , akkor a következő hibaüzenetet dobja: "érvénytelen sql szintaxis - oszlopszintő CHECK korlátozás esetén nem használható több oszlop".
Néztem microsoft oldalán a leírást, de nem lettem okosabb. Nem tudom értelmezni a hibaüzenetet. Az adatbátist nem én hoztam létre, már meglévőt bővítenék. "c" oszlopot minden további nélkül létre lehet hozni, csak a számított értékkel van valami gond.Végén 2 tábla adataival kellene számolnom, de még táblán belüli oszlopéval se sikerült eddig.
Tudna valaki segíteni? -
Ablakos
addikt
válasz
dellfanboy
#2218
üzenetére
A distinct nem számol, hanem a mögötte álló oszlop(ok)ból egyedi értékeket képez.
select count(distinct oszlopnév ) from táblanév; egyedi értékek számossága -
dellfanboy
őstag
mi a legegyszerűbb módja, hogy 1 oszlopban megszámoljam a változókat?
select distinct oszlopnév from táblanév ?mi a helyzet ha két oszlopot akarok lekérni de csak az egyiket sorba rendezni?
-
jozsi84
tag
válasz
FireFox1996
#2197
üzenetére
Elnézést a késői reakcióért....
Köszönöm szépen a választ/okat! Sikerült megoldanom...
-
Apollo17hu
őstag
Az nvl-es megoldás működik, ezt kerestem. Ha esetleg lehet még javítani a kódon, azt szívesen fogadom.
-
martonx
veterán
válasz
Apollo17hu
#2211
üzenetére
Esetleg ha sqlfiddle-re tennél fel példát, akkor el is tudnánk mélyedni benne az ötletelés helyett.
-
martonx
veterán
válasz
Apollo17hu
#2207
üzenetére
Jobbnak nem jobb, csak leírva rövidebb, mint egy jó hosszú case when.
-
Apollo17hu
őstag
válasz
FireFox1996
#2210
üzenetére
Ez már így szerintem nem a "legegyszerűbb" megoldás.

Maradok egyelőre Zeratul javaslatánál, remélhetőleg alkalmazható. -
FireFox1996
addikt
válasz
Apollo17hu
#2209
üzenetére
1. Csinálsz egy union-t 2 tablabol, plusz 2 üres mezővel: t1_fl, t2_fl. Ez mondjuk t3 táblába megy
2.
Update t3
Set t1_fl= 'x'
Where amely szerepel a t1 táblában3.
Update t3
Set t2_fl= 'x'
Where amely szerepel a t2 táblában -
Apollo17hu
őstag
válasz
FireFox1996
#2208
üzenetére
Nem, az azonosító és az időbélyeg együttesen kulcs.
t1:
id calendar_date
1 2013.12.31
2 2014.01.01
3 2013.12.31
4 2014.01.01
6 2013.12.31
8 2013.12.31
9 2013.12.31
12 2013.12.31t2:
id calendar_date
1 2013.12.31
3 2013.12.31
5 2013.12.31
6 2013.12.31
8 2013.12.31
11 2014.01.01
15 2014.01.01ezt szeretném:
id t1_fl t2_fl
1 x x
3 x x
5 x
6 x x
8 x x
9 x
12 x -
FireFox1996
addikt
válasz
Apollo17hu
#2205
üzenetére
Ugyanaz a record többször előfordulhat egy táblában?
-
martonx
veterán
válasz
Apollo17hu
#2203
üzenetére
A case when helyett coalesce-et használnék
-
Apollo17hu
őstag
válasz
FireFox1996
#2204
üzenetére
Ez azért nem lenne jó, mert ha mindkét táblában megvan a rekord, akkor csak az egyikre vonatkozó érték (1 vagy 2) fog megjelenni "honnan"-ban.
-
FireFox1996
addikt
válasz
Apollo17hu
#2203
üzenetére
Union kell!
Select..., 1 honnan from tábla1
Union
Select..., 2 honnan from tábla2A "honnan" mező alapján tudod hogy tábla1 vagy tábla2-ből származik...
-
Apollo17hu
őstag
válasz
FireFox1996
#2201
üzenetére
A legegyszerűbb megoldást keresem egy olyan halmaz létrehozására, ami tartalmazza t1 és t2 minden elemét (az azonos elemeket csak egyszer), és segédmezőkben tárolom, hogy az elem megtalálható-e t1-ben és/vagy t2-ben. Utóbbira CASE WHEN t1.id IS NOT NULL THEN 'x' END t1_fl és t2_fl mezőket vettem fel. Nem tudom, hogy UNION ALL -lal a segédmezők megvalósíthatóak-e. (A segédmezőkre később szűrök, ezért kellenek.)
-
FireFox1996
addikt
válasz
Apollo17hu
#2199
üzenetére
Ha uniót akarsz, akkor nem így full outer join kell, mert azzal csak "metszet"-et kapsz.
ha unio kell, akkor ott az unio kulcsszó.
select .. from t1 where ...
union / vagy union all /
select ... from t2 where...
Új hozzászólás Aktív témák
- LG 55QNED86T3A / QNED / 55" - 139 cm / 4K UHD / 120Hz / HDR Dolby Vision / FreeSync Premium / VRR
- Akciós kisWorkstation! Dell Precision 3570 i7-1255U 4.7GHz / 32GB / 1000GB / Quadro T550 4GB FHD 15"
- BESZÁMÍTÁS! Nintendo Switch OLED 64GB +256GB fekete játékkonzol garanciával hibátlan működéssel
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




Ezeket az agymenéseket miért nem rakod inkább OFF-ba?
Mondjuk most pont tök szórakoztató ilyeneket olvasgatni, amikor valaki túlheveskedi a kommentjeit, de valószínűleg kicsit más hangulatban írjuk épp a hsz.-einket.


![;]](http://cdn.rios.hu/dl/s/v1.gif)


... tesztelni tökéletes


