- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- MaxxDamage: Vizes Laptop Hűtés? Lehetséges? Igen!
- Fire/SOUL/CD: INGYENES Clone és Backup-Restore alkalmazások tesztje [2024]
- sh4d0w: Én és a számítógép
- sh4d0w: Árnyékos sarok
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- sziku69: Szólánc.
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
Apollo17hu #2199 üzenetére
igy esetleg? ugy emlekszem lehet ilyet
AND NVL(t1.calendar_date, to_date('20131231', 'yyyymmdd')) = to_date('20131231', 'yyyymmdd')
AND NVL(t2.calendar_date, to_date('20131231', 'yyyymmdd')) = to_date('20131231', 'yyyymmdd') -
Apollo17hu
őstag
FULL OUTER JOIN-nal azonosítón keresztül összekötök két táblát. A táblákban időbélyegek vannak, mindkettőben adott nap (ugyanaz a nap) érdekel csak. Ha a táblákat allekérdezésbe rakom, és "előszűröm" őket a szükséges napra, akkor működik a lekérdezésem.
Van allekérdezés nélküli megoldás? Ez a kód nem jó, mert a WHERE miatt metszetet kapok unió helyett (-> "megöli a FULL OUTER JOIN-t")
SELECT ...
FROM t1
FULL OUTER JOIN
t2
ON t1.id = t2.id
WHERE 1 = 1
AND t1.calendar_date = to_date('20131231', 'yyyymmdd')
AND t2.calendar_date = to_date('20131231', 'yyyymmdd') -
n00n
őstag
Sziasztok!
Lenne pár Firebird - Linux kérdésem. Van három adatbázison (1 GB, 9 GB, 15GB), a szerverben 8 GB RAM (64 bites Linux szerver)
DB infók:
1 GB-os:
Page size 4096
Page buffers 100009 GB-os:
Page size 8192
Page buffers 1000015GB-os:
Page size 4096
Page buffers 0Ezeket nem én állítottam be, így kaptam őket. A kérdésem a harmadik legnagyobb adatbázisnak miért 0 a page bufferje? Miért érné meg erre beállítani? Miért mindössze csak 4%-os a memória használatom ilyen beállítások mellett?
-
FireFox1996
őstag
-
jozsi84
tag
sziasztok.
A segítségeteket szertném kérni egy feladatnál:
hogyan lehet A táblából átmásolni B táblába dátumot /2013-05-18 18:40:33.000/ úgy, hogy hozzáadok automatikusan 30percet az időhöz.
A tablaban a datum a TRANS_DATE oszlopban van.
....ez egy procedura resze lesz, csak itt elakadtam....
köszönöm szépen előre is!
-
martonx
veterán
válasz
kemkriszt98 #2190 üzenetére
Milyen SQL?
-
DNReNTi
őstag
válasz
kemkriszt98 #2190 üzenetére
TRUNCATE TABLE `táblanév`.
Eldob minden rekordot, és visszaállítja az AI-t is. -
kemkriszt98
tag
Sziasztok, ha egy táblából törlök minden adatot, hogy tudom megoldani, hogy az oszlop amin AutoIncrement van megint 1-től induljon? Ezt a megoldást találtam de syntax error-t kapok : DBCC CHECKIDENT(YourTableName, RESEED, 0)
-
Fundiego
tag
válasz
Apollo17hu #2186 üzenetére
ORA-00911: invalid character
csak ha kijelölöm pl ezt
CREATE TABLE TASKA
(nev VARCHAR2(15),
munkahely VARCHAR2(15),
szuldatum NUMBER(4),
CONSTRAINT TASKA_PRIM_KEY PRIMARY KEY(nev));
nem ír semmit lefuttatja csak egybe az egészet nem. nem értem mért -
Fundiego
tag
sziasztok, nem értem h itt mi lehet a probléma?:/
külön külön lefut ,részegységenként a kód. de egybe , nem
DROP TABLE TASKA;
CREATE TABLE TASKA
(nev VARCHAR2(15),
munkahely VARCHAR2(15),
szuldatum NUMBER(4),
CONSTRAINT TASKA_PRIM_KEY PRIMARY KEY(nev));
INSERT INTO TASKA VALUES (' Béla','ABC',1965);
SELECT * FROM TASKA; -
bambano
titán
válasz
csabyka666 #2182 üzenetére
de a keresendő szavakban a szóközt ne |-re cseréld, mert az nem szóköz, hanem keresd meg, hogy a te regexpedben mi a szóköz rövidítése. pl. lehet ilyen: [:whitespace:]
és akkor a találj meg keresést így kell írni:
találj[:whitespace:]meg|másik[:whitespace:]keresés|harmadikszóval vagy egyszer fűzöd össze a mezőket, és csinálsz rendes keresőkifejezést a keresendő szavakból, akkor regexp-et kell használnod.
vagy like-ot akarsz használni, akkor or-ral össze kell fűzni a kereséseket. -
-
válasz
bambano #2181 üzenetére
Akkor nem értem, nálam miért csak úgy fogadja el.
Pedig már közel állok az igazsághoz.
Illetve probléma még az is, ha a mezőben, amiben keresek, több szó van, szóközzel elválasztva. Akkor azt nem találja meg. Pl. a mező tartalma: "találj meg", és ha beírom a keresőmezőbe, hogy "találj meg", akkor nem ad találatot.
Összefűztem a CONCAT()-tal SQL-ben, és | jelek vannak a keresőkifejezésben. Hát nem tudom, mi lehet a baj.
Nem akad össze a | jel? Mert a CONCAT()-ban is azokat használom.Hogy értetted, hogy VAGY-gyal csináljak egy végső logikai kifejezést?
-
bambano
titán
válasz
csabyka666 #2180 üzenetére
miért kellene az összes előforduló sorrend?
a szavakat azért kell határoló jellel elválasztani, nehogy megtaláljon olyan rekordokat, ahol az egyik mező vége és a másik mező eleje együtt kiad egy keresendő szót.
de azon belül a sorrend mindegy, mert úgyis csak szón belüli egyezést talál.lesz egy hosszú sql kifejezésed, na és? szöszöljön vele a szerver, azért van. egyébként is a hosszú kifejezés 4-5 mélységig beágyazott subselectnél kezdődik, triggerekkel hülyítve
szerk: közben megértettem. ha így concat-tal csinálod, akkor csak egy keresendő szóra tudsz egyszerre keresni és azt utána php-ben össze kell merge-lni.
viszont ha like-ból visszatérsz az eredeti ötleted szerinti regexp-be, és ott a | az a logikai vagy, akkor jó lesz, nem kell sorrenddel foglalkozni.szerk2: tehát a végső megoldás:
concat(...) like '%keresendoszo1%' or
concat(...) like '%keresendoszo2%' or
.
.
.
concat(...) like '%keresendoszox%'; -
válasz
bambano #2178 üzenetére
Köszi a választ, félsiker már van.
Szűkíti a találati listát, viszont ahhoz, hogy eredményt kapjak, abban a sorrendben kell beírnom az adatokat, ahogy az összefűzésben szerepel.
Ezt írtam:
WHERE CONCAT(mezo1,'|',mezo2,'|',mezo3,'|',mezo4) LIKE \"%$keresokifejezes%\"A $keresokifejezes-ben így|szerepelnek|a|beírt|szavak.
Ezekből csináljak VAGY-gyal egy végső kifejezést, amiben az összes előforduló sorrend szerepel? Szóval lesz egy tekintélyes hosszúságú SQL lekérdezésem?
-
bambano
titán
válasz
csabyka666 #2177 üzenetére
a te megoldáshodhoz:
lehet azt csinálni, hogy or-ral összerakod a keresőkifejezést egy keresésre, ami lehet az, hogy egy keresendő szó minden mezőre kifejtve vagy lehet egy mező minden keresőszóra kifejtve.
amit visszaad, azt beolvasod egy ciklussal tömbbe.
utána ismétled az egészet tovább, megint beolvasod tömbbe, képezed a metszetet, és ezt csinálod ciklikusan. de ez nekem nem tűnik elegánsnak. -
bambano
titán
válasz
csabyka666 #2177 üzenetére
a dolog lényege, hogy php-ben összefaragod stringműveletekkel a keresési feltételt, és utána egy keresést futtatsz, mert ha több utasításban keresel, akkor a distinctből falra hányt borsó lesz.
azt nem értettem eddig a kérdésedben, hogy neked a keresőszót több mezőn is egyszerre kellene értelmezni, eddig azt hittem, csak egyen.
erre meg az a megoldás, hogy az adatbáziskezelővel összerakatod egy stringbe az összes mezőt, amiben keresni akarsz, és arra adod meg a kereső kifejezést.tehát ha van mondjuk egy név, egy leírás, egy gyártó meződ, akkor valahogy így:
név||'|'||leírás||'|'||gyártó like '%elsőkeresőszó%' (postgresql szintaktikával, a || a postgresben string konkatenáció)
és ebből csinálsz logikai vagy-gyal függvényt. vagy csinálni kell rá egy nézettáblát, amin keresel, az lehet, gyorsabb.
magyarul keresel egy olyan karaktert, ami biztosan nem fordul elő az adatokban, hogy elválaszd a szavakat (nekem erre a csővezetékjel a kedvenc), és az összes mező tartalmát összerakod egy stringbe ezzel a jellel elválasztva, majd ezen a stringen csinálod a like-ot. ez egy logikai kifejezés, ebből csinálsz vagy-gyal egy végső logikai kifejezést.
másik, nem annyira elegáns megoldás, ha csinálsz egy külön táblát, amibe ideiglenesen tárolod a keresések részhalmazait, csak akkor ott figyelni kell rá, hogy párhuzamos használat esetén mi lesz.
szóval egy táblába beleszórod azokat az azonosítókat, amely rekordokban az aktuális keresőszó megvan, majd csinálsz egy selectet belőle, distinct-tel, valahogy így:for i in (keresendő szavak listája sorban); do
for j in (keresett mezők listája sorban); do
sql="insert into temptabla (id) select id from tabla where $j like '%$i%';
done
done
select distinct id from temptabla;ez nyilván nem helyes program, csak egy utalás arra, hogy hogyan kellene. szerintem ez a második megoldás kicsit parasztos, de mindegy...
-
válasz
bambano #2175 üzenetére
Próbáltam több módon is a LIKE-al, DISTINCT-el, de vagy az van, hogy én mondtam rosszul, amit el akarok érni, vagy valamit rosszul írtam a PHP-ban, vagy te értelmezted rosszul...a fene se tudja, a lényeg, hogy nem sikerült összehozni.
Nem értem azt sem, hogy miért nem kell lefutnia többször a query-nek? Van 4 mezőm, amiben keresni akarok, és mindezt úgy, hogy minden egyes beírt szóra megnézem, hogy illeszkedik-e bármelyik mezőre is.
Szóval beírom, hogy "ezt akarom megkeresni", és ebből - értelmezésem szerint - mindhárom szót meg kell néznem mind a 4 mezőn. (Tehát annyiszor futtatom a query-t, ahány szót megadok neki.)Azt már elértem, hogy csináltam egy tömböt, amibe beletettem mindegyik keresőszót, és ezen végigmentem, majd lefuttatom a query-t mindegyik szóra. Vissza is adja, hogy melyik indexeket találta meg (és ráadásul jót ad vissza), de ott akad meg a dolog, hogy ezeknek nem tudom a metszetüket venni. 99% hogy ez így működne, ha tömbökbe tudnám tenni a keresések eredményeit, mert azoknak tudom metszetüket venni.
Ha van ennél egyszerűbb módszer, akkor szívesen meghallgatom azt is, de így most tanácstalan vagyok.
A lényeg ugye az lenne, hogy csak azt a sort (esetleg sorokat) adja vissza a legvégén, amelyikre az összes beírt kifejezés passzol, vagyis a metszetüket.
Tehát:
...WHERE
mezo1 LIKE '%$keresokifejezes%' OR
mezo2 LIKE '%$keresokifejezes%' OR
mezo3 LIKE '%$keresokifejezes%' OR
mezo4 LIKE '%$keresokifejezes%'
...és persze minden mezőt minden kifejezésre meg kellene vizsgálnom. -
-
bambano
titán
válasz
csabyka666 #2174 üzenetére
nem jól érted.
-
-
bambano
titán
válasz
csabyka666 #2172 üzenetére
szerintem nem jó ötlet a php-t dolgoztatni olyan dolgokkal, amit az adatbáziskezelő helyből hatékonyan megold. tehát a keresési találatok metszetét nem php-ben kell megoldani, hanem sql szinten.
egy kósza javaslat:
select distinct id from table where mezo1 like '%akarmi1%' or mezox like '%akarmin%' ... ; -
Na, aludtam egyet a dologra. Jó lenne nekem a LIKE is, de azt kellene elérni (viszont ezt már PHP szinten), hogy ráküldöm a keresőkifejezést mindegyik (esetemben 4) rekordra pontosan annyiszor, ahány szót írt be a felhasználó.
Erre gondolok:
A kifejezés legyen: "most ezt szeretném megkeresni", és legyen 4 rekord, amiben keresni akarok.
1.) "most" -> keresi 1-2-3-4-ben -> visszaadja pl. 1-2-3-4-et
2.) "ezt" -> keresi 1-2-3-4-ben -> visszaadja pl. 1-2-4-et
3.) "szeretném" -> keresi 1-2-3-4-ben -> nem ad vissza semmit
4.) "megkeresni" -> keresi 1-2-3-4-ben -> visszaadja pl. 1-4-etEzután össze kéne gyűjtenem a találatok sorainak indexeit, de úgy, hogy a metszetüket venném, és akkor a végén csak azt adnám vissza, amelyik mindegyikre találatot adott, a példa szerint 1-es és 4-es lenne a találat.
Itt jön a kérdés, hogy PHP-ben ezt hogy tudom elérni...
MOD: hm, array_intersect(); ?
-
martonx
veterán
válasz
csabyka666 #2169 üzenetére
én csak a példa kedvéért írtam a like-ot, nem azon volt a hangsúly, hanem az egymásba ágyazott vagy-okon és-eken.
-
bambano
titán
válasz
csabyka666 #2169 üzenetére
ha emlékeim nem csalnak, akkor regexpben (igazából kérdezni kellene, hogy pontosan melyikben, mert többféle van), a | az a logikai vagy.
tehát a most|ezt|szeretném|megkeresni regexp az ennyi:
string='most' or string='ezt' or string='szeretném' or string='megkeresni'a like az csak csonkolni tud, vagyis részstringet keres, a regexp meg ennél bonyolultabbat is tud, cserébe legalább lassú.
"Ha LIKE-ot használok, az a szóközzel nem tud mit kezdeni.": miért ne tudna?
"Viszont a REGEXP-nél meg tudom azt oldani, hogy a beírt stringben lecserélem a szóközöket | jelekre, és odaadom az SQL lekérdezésnek.": igen, és a fentiek alapján ezzel teljesen más keresőkifejezést alkottál, mint ami az eredeti volt.
-
válasz
martonx #2167 üzenetére
Húha, lehet, hogy én mondtam rosszul, de nem értem, pontosan mire gondolsz.
Azért kellene a REGEXP, mert az ilyen formában várja a stringet: most|ezt|szeretném|megkeresni.
Ha LIKE-ot használok, az a szóközzel nem tud mit kezdeni. Viszont a REGEXP-nél meg tudom azt oldani, hogy a beírt stringben lecserélem a szóközöket | jelekre, és odaadom az SQL lekérdezésnek.De amit írtál, arra alszok egyet. Lehet, hogy az lesz a megoldás, hogy egymásba kell ágyazni az ÉS-eket és a VAGY-okat.
-
válasz
Apollo17hu #2166 üzenetére
Nem feltétlen 4 szót adhat meg, viszont 4 mezőben kellene keresnie.
A REGEXP-et itt a fórumon javasolták. A LIKE azért nem jó, mert azzal alapból nem tudok több kifejezést vizsgálni egyidőben. Illetve tudok, mert leprogramoztam PHP-vel, de elég bonyolult lett, és pazarol is az erőforrással. Ha több felhasználó is használja az oldalt, akkor szerintem szép kis SQL vihart csinálnának.
Szóval a REGEXP jó lenne, csak a feltételekkel vagyok bajban.
-
martonx
veterán
válasz
csabyka666 #2165 üzenetére
Valami ilyemi kellene, hogy legyen a keresési feltételed:
WHERE
(feltétel1 nem üres OR mező1 like feltétel1)
AND (feltétel2 nem üres OR mező2 like feltétel2)
AND (feltétel3 nem üres OR mező3 like feltétel3)
...Már ha jól értettelek.
-
Apollo17hu
őstag
válasz
csabyka666 #2165 üzenetére
A 4 mezőben keresel azt jelenti, hogy a felhasználó max. 4 szót adhat meg szűkítésnek? Szerintem a keresők nem ezen az elven működnek, de ha te így szeretnéd, akkor talán az AND mégis használható lenne, ha REGEXP helyett LIKE '%keresés%' jellegű kifejezéseket vizsgálnál. Amúgy a REGEXP honnan jött? Miben jobb a LIKE-nál a lekérdezésedben?
-
Üdv!
REGEXP segítségével keresek egy adatbázisban (a keresőkifejezésben a szóközöket |-re cseréltem), és azt szeretném elérni, hogy több beírt keresőszó esetén szűkítse a találati listát az SQL. 4 mezőben keresek, és ezeket OR köti össze, viszont így az a probléma, hogy minél több szót írok be, annál több találat lesz.
Nem tudom, mennyire érthető, mit akarok kinyökögni. Próbálom illusztrálni. Adott 2 sor a táblában:
1.) Danone - joghurt - epres - 125g
2.) Danone - joghurt - barackos - 125gHa beírom, hogy "epres", akkor csak az elsőt találja meg, de ha azt írom be, hogy epres joghurt, akkor megtalálja mindkettőt, és én azt szeretném, ha csak azt a sort találná meg, ahol mindkettőt rá tudja illeszteni.
Túl egyszerű lenne, ha AND kötné össze a REGEXP-eket, mert akkor ugye mind a 4-en rápróbálja, és ha akár egyik nem hoz eredményt, már nincs is eredménye a keresésnek. Ha mind a 4 mezőnél egyezést talál, akkor persze jót ad vissza, de minél több mezőt kell megadni, annál kisebb az esélye, hogy a felhasználó kap eredményt...
Szóval értitek, mi a problémám...? Van valami relatíve egyszerű megoldás erre?
-
Sziasztok!
SQL Compact db-ben hogy néz ki a csoportos insert syntax? Az msdn-en nem találtam megoldást sajnos, kedvem pedig nem túl sok van ~10k sor ismételt egyesével való felviteléhez.A választ előre is köszi!
-
Ablakos
őstag
válasz
BigBlackDog #2157 üzenetére
delete from (select 1 from A , B where A.id = B.ref_id where B.attr = 'valami');
-
BigBlackDog
veterán
válasz
Peter Kiss #2156 üzenetére
Amit elfelejtettem leírni, hogy PL (Oracle) SQL-ről lenne szó. Ott is lehetséges join-olni a delete-ben?
-
Peter Kiss
őstag
válasz
BigBlackDog #2155 üzenetére
Ha csak ezt a négyet, akkor a join-ok nem esnek ki, szóval azzal tudod megoldani.
Cursor-oknál lassab SQL megoldás nem létezik.
-
BigBlackDog
veterán
válasz
Peter Kiss #2153 üzenetére
Halmazműveletek alatt pontosan az UNION, INTERSECT, MINUS, IN műveleteket értem (érti a feladatsor), mivel ezek állítólag elég költséges műveletek. Gondoltam már én is a cursorra, asszem akkor ki is próbálom.
A kretén módszerekkel, vagyk kihívásokkal (ki hogyan fogja fel) kapcsolatban meg maradjuk annyiban egyelőre, hogy egy egyetem Budapestről...
(#2154) Ablakos: Köszönöm, utánanézek ennek is.
-
Ablakos
őstag
válasz
BigBlackDog #2152 üzenetére
On delete Cascade opcióval létrehozott tábla?
-
Peter Kiss
őstag
válasz
BigBlackDog #2152 üzenetére
Hehheh, bármilyen SQL halmazműveletekről szól, akármit is csinál, szóval sehogy?
Cursor-okkal mehetsz a legközelebb az általad kért megoldáshoz, de kíváncsi lennék, miért kell valamit kretén móton megoldani.
-
BigBlackDog
veterán
Sziasztok!
Kis segítséget kérnék, nem nagyon jövök rá, hogy hogyan lehetne az alábbi problémát megoldani. Szóval adott két tábla, 'A' és 'B'. 'B' táblában, minden rekordhoz van egy idegen kulcs egy 'A' táblabeli elemre. Minden 'B' táblabeli rekordhoz egy 'A' táblabeli rekord tartozhat, fordítva viszont 0..n a kapcsolat.
'A' táblából kéne rekordokat törölnöm a hozzájuk kapcsolódó 'B' táblabeli rekordoktól -azok egy attribútumának értékétől- függően, mindezt inner selectek és halmazműveletek (in, union, stb) nélkül. Hogyan oldható meg ez a feladat szerintetek?
Előre is köszönöm a válaszokat! -
bambano
titán
válasz
kenesei1982 #2147 üzenetére
van magyar oracle, az nem jó?
supportot szerintem azoktól a cégektől vehetsz még, akik kompletten is supportálják az oprendszert, vagyis novell hungary, vagy ulx.hu. én ezen legutóbbival kezdeném.
szerk: esetleg keresd meg azt, aki ezt az állásajánlatot meghirdette.
-
bpx
őstag
válasz
kenesei1982 #2148 üzenetére
most akkor MySQL vagy MSSQL support kell?
-
martonx
veterán
válasz
kenesei1982 #2147 üzenetére
Huh, én dolgoztam outsorcing céggel, akik outsourcingban linux, mysql szervereket tartottak karban.
Viszont nem volt jó tapasztalatom velük, bár a semminél jobbak voltak.Ha nagyon kell, megpróbálom feldúrni az emlékezetemben (emailjeimben) őket, ha drágán, lassan, akarsz nem túl jó minőségű munkát kapni, akkor mindenképpen jobbak mint a semmi.
-
válasz
kenesei1982 #2147 üzenetére
találtam egy számot:
Professional Support (MCP, SA, MSDN)
+36 1 2674636Hátha vkinek még kell. Holnap kiderül tudnak-e segíteni.
-
Sziasztok,
Rágoogliztam, de csak álláshírdetéseket dob ki az sql support kifejezésre.
Ismer valamelyőtök magyarországi MySQL supportot? Van egy adatbázisunk, ami még működik, mert fogadja az új adatokat, de se keresni, se törölni nem tudunk benne.
Valami hivatalos dolog kellene, mert céges az ügy, uh hivatalosan kell megoldanunk.Ismertek ilyet?
-
martonx
veterán
Ez esetben ahogy írtam már, kell neked egy segéd tábla, valami ilyesmi felépítéssel:
Felhasználó azonosító, Iroda azonosító, Engedély dátum, Engedély (Igen / nem)
És ilyesmi adataid lennének benne:
1, 1, 2014-01-01, igen
1, 2, 2014-01-10, igen
1, 1, 2014-02-15, nemAzaz az 1-es felhasználó az 1-es irodához kapott engedélyt 2014-01-01-én. Ezt az engedélyt 2014-02-15-ével visszavonták. A 2-es irodához van élő engedélye 2014-01-10-e óta.
-
eames
tag
válasz
martonx #2140 üzenetére
Pontosítok egy példával:
Egy táblában vannak olyan oszlopok, hogy név, azonosító(kulcs), iroda1, iroda2, iroda3,... iroda n. A személyek nevei és azonosítói mellett pipálva van az adott iroda, ha belépési engedélye van, ha nem léphet be nincs pipa. Ezek az engedélyek változhatnak, és tudni kellene, ki mikor melyik irodába kapott engedélyt. Pl. xy mikor kapott belépést iroda3-ba, de ez nem biztos, hogy az utolsó módosítás mert lehet azóta iroda5 és iroda6-ba is beléphet.
Ebben az esetben hogy nézne ki az sql utasítás?
Nagyon nem erősségem az adatbázis, bocsánat ha nem egyértelmű. -
zolynet
veterán
bpc -ben mivel tudom azt megadni hogy az első sort hagyja figyelmen kívül és csak a 1sort követő sorokat importálja be? van olyan kapcsolója?
keresem már ...
-
martonx
veterán
válasz
Peter Kiss #2139 üzenetére
MS access-ben triggert nehezen fog csinálni.
Viszont ha egy kvázi log / history tábla kell, akkor tényleg csak egy plusz táblára lesz szükség, és a fő tábla update-elésekor, ebbe kell insertálni egy sort, ami mutatja a változást.
-
Peter Kiss
őstag
Csinálhatsz triggert, ami lemásolja az egész sort, és elmenti módosításkor az előző állapotot egy plusz mezővel, meddig volt érvényes. Az éles táblába belerakhatod a módosítás dátumát, ha kell így még egyáltalán, illetve ezzel együtt a tükörben látható lenne egy mettől meddig dátum.
-
eames
tag
Van egy adatbázis, az egyik táblában a rekordok logikai típusúak. Az lenne a feladat, hogy ha az egyik módosul (kipipáljuk vagy levesszük a pipát), akkor valahol mutassa a módosítás dátumát annál a rekordnál/rekordoknál amik módosultak. Megoldható valahogy?
-
bpx
őstag
pont az amit ir a hiba
csak classid szerint megy a group by, ilyenkor a tobbi oszlopra "osszesito" fuggveny kell, pl. COUNT, MAX, vagy azokra is group by-olni kell
az a baj a lekerdezessel, hogy mivel a classification oszlopra egyik sincs, igy annak erteke nem determinisztikus
mysql sajnos megenged ilyen lekerdezest, mas adatbaziskezelok szerencsere nem -
Kommy
veterán
Sziasztok ezzel a lekérdezéssel mi a gond?
"SELECT classid, COUNT(racerid) as Riders, MAX(RaceGroup * 1) as MOTOS , classification FROM Rating r, Classes c WHERE c.id = r.classid AND eventid = " + eventID + " GROUP BY classid";
ezt a hibát kapom: Egy olyan lekérdezést próbált végrehajtani, amely nem tartalmazza a megadott kifejezést ('classification') egy összesítő függvény részeként.
A classification a Classes táblában van, ha kihagyon a clssification-t a lekárdezés kiíratásából akkor lefut.
-
Működik, frankó!
-
Köszi a választ mindkettőtöknek! Egyelőre nekem az a lényeg, hogy működjön. Nem probléma, ha nem hatékony az erőforrásokkal...stb.
A keresést illetően bőven elegendő, ha az "alma" kifejezésre megtalálja a szükséges sorokat.
-
bpx
őstag
válasz
csabyka666 #2124 üzenetére
Van ugye a "where lower(oszlop) like '%alma%'" modszer, de ha valami okosabb kell, akkor vannak erre RDBMS-specifikus eszkozok, pl. [link]
-
Apollo17hu
őstag
válasz
csabyka666 #2124 üzenetére
SELECT * FROM tabla
WHERE UPPER(mezo) LIKE '%ALMA%' -
Üdv mindenkinek!
Azt szeretném kérdezni tőletek, hogyan lehet variálni a rész-stringekkel SQL-ben?
Csak azokat a sorokat szeretném kiszedni a táblából, amire (vagy aminek egy részére) ráillik egy adott kifejezés. Pl. ilyen sorok vannak a táblában, hogy
almafa
körtefa
almabor
meggyleves
almalé
és én azt szeretném elérni, hogy minden olyan sort visszaadjon, amiben bárhogyan is szerepel, hogy "alma". Ha egy az egyben beírom a cella tartalmát, úgy megtalálja, de nem várhatom el a felhasználótól, hogy 100% pontossággal beírja a cella tartalmát mondjuk egy keresőmezőbe. Gondolom értitek, mit akarok itt kinyökögni...Mi erre a legegyszerűbb megoldás?
Köszi a segítséget előre is!
-
-
martonx
veterán
-
eames
tag
Sok (több mint 30) excel táblázatból kéne egy jól átlátható adatbázist létrehoznom. Ezekből a táblázatokból van amit még több részre kell szedni, így lenne ~40 táblás az adatbázis. Nem vagyok otthon a témában, nem sok ez? Lehet majd vele dolgozni?
-
martonx
veterán
MySql-lel (pedig 5.6-os verziót használunk per pillanat) sebesség tekintetében nekem is rossz tapasztalataim vannak. De lehet, hogy csak én nem értek hozzá eléggé. Konfigoltam, hangoltam, de igaziból nem nagyon lett jobb.
MS is ad rengeteg kedvezményt, az hogy papíron mennyibe kerülnek csak egy dolog.
-
bambano
titán
mikor legutoljára az ora.hu-tól kértem árajánlatot egy projektre, olyan számokat mondtak, hogy leestem a székről. megcsináltuk postgressel, erre elkezdtek kötözködni, hogy miért nem ora. hát azért, mert a teljes költségvetés hatszorosát kellett volna csak a db-re kiadni.
arra a feladatra, amire nekem kellett, a gyalog mysql gyorsabb volt, mint a gyalog pg, de elkezdtem behangolni mind a kettőt és a végén a pg porba alázta a mysql-t, pedig a mysql 8-as raid0-n volt, a pg meg sima diszken. akkoriban a mysql még tudott raidet, azóta ezt nem néztem.
már most tudom, mi lesz a következő néhány hsz tartalma
-
bambano
titán
válasz
martonx #2109 üzenetére
amennyire követtem a dolgokat, normális clusterezési lehetőség csak a 9-es sorozatú pg-kben van, talán 9.3-tól. Azt nem tudom, rendes multimaster clustert lehet-e már építeni, egy master-sok slave cluster most már van.
A 8-as postgresekhez is volt külsős cluster szoftver, anno teszteltünk párat, nevetséges eredményt hozott. például ha session-id-t úgy akartál generálni, hogy volt benne random függvény is, akkor a cluster két darabján nem egyezett a két adat. now() függvény dettó. meg a tárolt procedúrákkal is baj volt.
"szerinted is"? én nem mondtam, hogy az oracle meg az mssql komolyan vehető adatbáziskezelő. az oracle tudását elismerem, de az árazása meg a ora.hu sales tevékenysége nálam több, mint kiütötte a biztosítékot.
a mysql-t nagyon régen teszteltem, lassú is volt, cserébe alap dolgokat sem tudott (ismétlem, a régi verzió), így nem foglalkoztam vele többet. meg amióta az ora felvásárolta, azóta a jövőjét elég ködösen látom.
nekem egy adatbáziskezelő van, ami komoly, a pg. minden hibája ellenére ezzel tudom legjobban megoldani a dolgaimat. (igen, van szubjektív rész is ebben a döntésben)
-
martonx
veterán
válasz
bambano #2104 üzenetére
Pedig postgreSQL-lel is lehet clustert építeni. Sőt az ingyenes MySQL-el is.
Ettől függetlenül szerintem is Oracle és MS SQL a két komolyan vehető adatbázis szerver. Mondjuk az Oracle aranyárban van, bár talán nem is véletlenül adják annyiért.
Ami még nagyon jó alternatívája az ingyenes SQL-eknek, az a Microsoft féle Azure SQL, ami bérelhető MS SQL 2012 szerver, némi felhős butítással. Az enyém havi kemény 4 euróért, napi 9 millió rekordot fogad magába, hogy aztán 1 órán belül ezek nagy része törlődjön is, és még ehhez jönnek az egyéb queryzések. 4 euróért zseniális a teljesítménye. -
bambano
titán
válasz
sztanozs #2106 üzenetére
A bármi az nem az ms sql express.
Te azt mondtad, hogy az ilyen express kiadásoknak lehet komoly alternatívája a pg. szerintem meg nem, fullos oracle-nek, ms sql szervernek, stb. bárminek lehet. ha meg az ora és a pg árazását hasonlítom össze... nem is kell folytatnom a mondatot. -
Ispy
nagyúr
-
bambano
titán
olvasgatom ezt a remek mysql doksit, ilyenek vannak benne:
- az enumos oszlop típusa lehet string vagy int. remek.
- ha beszúrsz egy nemlétező értékkel rendelkező rekordot, akkor simán lecseréli üres stringre.
- számokat csak stringként lehet belerakni, így ha egy gyengén típusos nyelvvel kérdezed le, mint az nagy divat, akkor nem tudod eldönteni, hogy mit adott vissza az sql szerver.hát szóval lehet, hogy nem sért adatbázistervezési szabályt (egyelőre még nem találtam meg a bizonyítékot
), de hogy az implementációjától sírva kirohannék a világból, az biztos.
Új hozzászólás Aktív témák
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- GL.iNet Flint 2 (GL-MT6000) router
- One otthoni szolgáltatások (TV, internet, telefon)
- Elektromos autók - motorok
- Majdnem száz játékhoz engedélyezi az FSR 4-et az új AMD Software
- Bluetooth hangsugárzók: különlegesebb darabok
- Mini-ITX
- Battlefield 2042
- Formula-1
- CADA, Polymobil, és más építőkockák
- További aktív témák...
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- BESZÁMÍTÁS! Logitech G923 Driving Force Racing Wheel + Shifter garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Honor MagicBook 16 Ryzen 5 5600H 16GB 256GB FHD 144Hz
- Bomba ár! Lenovo ThinkPad T590 - i5-8GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest