Hirdetés
- droidic: Videó letöltés yt-dlp-vel (profi módszer)!
- sziku69: Fűzzük össze a szavakat :)
- vrob: Próbálkozás 386 alaplap újraélesztésre
- Brogyi: CTEK akkumulátor töltő és másolatai
- gban: Ingyen kellene, de tegnapra
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
Új hozzászólás Aktív témák
-
Speeedfire
félisten
válasz
fordfairlane
#2595
üzenetére
Oracle-nél a rowcount csak pl/sql-nél értelmezett a cursor miatt. Alapesetben with szerkezet kell hozzá.
A fentire én is a subselect-et írnám.

zolynet: A row_number() over (order by aru_egysegar) részhez is kell egy subselect, mivel így első körben csak aggregálod, mellesleg tök feleslegesen főleg ha nagyon sok adat van a táblában. Egy sort-nak sokkal kevesebb a cost értéke. -
-
Speeedfire
félisten
válasz
dellfanboy
#1911
üzenetére
Sql developert nem nagyon szeretem, inkább toad vagy plsql developer.

-
Speeedfire
félisten
válasz
dellfanboy
#1900
üzenetére
Hát, ha másik sémából szeretnél lekérni, akkor csak ennyi kell.
select * from masik_sema.tabla_nev
-
Speeedfire
félisten
Szeretnék egy view-ot készíteni, de 3db union van benne. Illetve minden egyes select tartalmaz subselectet és join-t. Ezt így nem lehet megoldani?

Error 1349-et ír ki nekem rá.
-
Speeedfire
félisten
válasz
Apollo17hu
#1885
üzenetére
De listagg() csak oracle alatt van nem? A group_concat szerintem csak mysql specifikus. Bár a mysql oracle termék, szóval lehet van rá ilyen függvény.

-
Speeedfire
félisten
válasz
Apollo17hu
#1883
üzenetére
A group_concat() képes erre.

select group_concat(distinct mezonev separator ', ') as aggregate
from tablaA fenti példámra egyelőre nem találok jobbat, szerintem max tárolt eljárással lehetne szebbet, de azt meg nem akarok osztott tárhelyen. Egyáltalán azt sem tudom lehet-e.

-
Speeedfire
félisten
válasz
Apollo17hu
#1881
üzenetére
De utána hogyan szűröm?
Ha összekonkatenálom, akkor ilyen lesz. 0,1,0,0,1 nekem pedig ilyen kellene 2,5. Tehát az adott elem sorszáma. -
Speeedfire
félisten
válasz
Speeedfire
#1879
üzenetére
Valami ilyesmit, amit utána concat_ws()-el fűznék össze, de nem hiszem, hogy nincs rá jobb megoldás.

select concat_ws(',',
`int1`,
`int2`,
`int3`,
`int4`,
`int5`,
`int6`
) as tipus
from (select
case
when `int1` = 1
then 1
end as int1,
case
when `int2` = 1
then 2
end as int2,
case
when `int3` = 1
then 3
end as int3,
case
when `int4` = 1
then 4
end as int4,
case
when `int5` = 1
then 5
end as int5,
case
when `int6` = 1
then 6
end as int6
from pelda) a;De nem túl elegáns szerintem.

-
Speeedfire
félisten
Mert left kell oda.

Adott 2 tábla.Egy-több kapcsolat van a 2 tábla között és a 2. táblából egy adott sorát szerettem volna aggregálni egy oszlopba, de a selectes résszel tökéletesen megy. Csak a join-nál nem volt jó. A joinnál előbb összefűzte az összes sor értékét, nem pedig a join feltétel alapján a megfelelőket.
Apropó, ha már aggregálás erre van megoldás?
id | int1 | int2 | int3 | int4 ...
8 | 0 | 1 | 1 | 1Ilyet szeretnék visszakapni.
id | opciok
8 | 2,3,4A concat_ws()-t néztem rá, de nem a legjobb. Az csak összefűzi az oszlopokat. Nekem viszont valami case szerkezet kellene a concat_ws()-be, ami a megfelelő oszlop alapján ad vissza értéket, ha 1 a mező értéke.
-
Speeedfire
félisten
válasz
Speeedfire
#1876
üzenetére
Érdekes mód a select részeb írva már jó volt.

select
a.*,
(select group_concat(b.mezonev separator ',') as listagg from tabla_2 where a.id =tabla_id) b
from tabla_1 a -
Speeedfire
félisten
Adott 2 tábla, az egyiket akarom összekötni a másikkal egy join-nal, majd a 2. tábla adott típusát szeretném listagg-al összefűzni, ahogy nézem mysql alatt a group_concat van. Viszont nekem ez felhoz mindent.
select
a.*,
group_concat(b.mezonev separator ',') as listagg
from tabla_1 a
left join tabla_2 b
on a.id = b.tabla_idSzépen össze is fűzni, ellenben nem a join szerint, hanem az össze elemet ami abban a táblában van.

-
Speeedfire
félisten
válasz
Apollo17hu
#1819
üzenetére
Sok rekordnál én sem tudom melyik lenne jobb performanciában. Egyelőre marad a pivot, ha lassú lesz idővel akkor megnézem a többi eshetőséget is.

-
Speeedfire
félisten
-
Speeedfire
félisten
Adott egy tábla:
id | lang | mess
1 | hu | valami
1 | en | envalami
2 | hu | megvalami
2 | en | enmegvalami
3 | hu | otLe lehet ezt kérdezni úgy, hogy ilyen formában kapjam vissza?
id | hu | en |
1 | valami | envalami
2 | megvalami | enmegvalami
3 | ot | - -
Speeedfire
félisten
válasz
Peter Kiss
#1809
üzenetére
Valóban, így is megy.

-
Speeedfire
félisten
válasz
Peter Kiss
#1807
üzenetére
Köszi!

Sejtettem, hogy subselect nélkül nem fog menni.

-
Speeedfire
félisten
válasz
Apollo17hu
#1805
üzenetére
Csak az időbélyeg érdekel, maga a comment nem.
pl
select t.*, s.create_time as order
from forum t
left join comment s
on t.id=s.forum_id
order by order desc -
Speeedfire
félisten
Adott 2 tábla egyikben forum leírások vannak, a másikban pedig a fórum hozzászólások.
forum:
----------
id | titlecomment:
---------------
forum_id | comment | create_timeOlyan lekérdezés lenne a célom ami kilistázza az összeset a fórum táblából és az ordernek a comment tábla create time értéke lenne.
select *
from forum t
left join comment s
on t.id=s.forum_id
order by s.create_time descEnnél a lekérdezésnél jó is lehetne, csak a commentek miatt többször is listázza ugyan azt a fórum leírást.
Ha rakok rá egy group by-t, akkor pedig nem jó az order.
Valakinek valami tippje? Csináljak egy subselect-et?
Vagy lehet join-nal is, csak épp nem így.
-
Speeedfire
félisten
válasz
Sk8erPeter
#1168
üzenetére
Azért akarom (illetve akarja a fene, de nem látom rá mást...), hogy utána ki tudjam törölni a régi bejegyzéseket.
tehát azt akarod, hogy valamennyi az adott júzerhez mindenképp megmaradjon?
Így van, y mennyiség bejegyzés megmaradni minden usernek.
Nem tudom mit értetlenkedsz ha tudod mire gondolok.

Adott pl 1m rekord és 1k felhasználó és pl 500 bejegyzésnek kellene lennie csak felhasználónként maximum. Ergo akinek több mint 500 ilyen bejegyzése van, azoknak a legrégebbieket törölni kellene.

-
Speeedfire
félisten
Na, akkor kérdeznék én is.

Adott egy log tábla az adatbázisban, ahol a felhasználók ip címe van mentve. x időközönként a legutolsó y mennyiségű adatot törölni kellene.
Van erre valami gyors megoldás?
Csak, mert ami nekem eszembe jutott, hogy groupba kellene szedni őket. Majd megnézni, hogy melyiknél mennyi van, ahol több mint y ott elmenti egy tömbbe azoknak a usereknek az id-ját. Majd egyesével időrendben növekvőbe tenni, lementeni az id-kat és megint csak lenne egy iteráció amiben törölve lennének ezek. Php-val oldanám meg, de ez így szerintem elég sok időbe telik és sok erőforrást emészt fel. Van erre esetleg valami egyszerűbb megoldás?
Adatbázis:
id | uid | ip | time
id: ai, elsődleges kulcs
uid: másodlagos kulcs
ip: varchar(20)
time: int(10) -
Speeedfire
félisten
válasz
PazsitZ
#1157
üzenetére
Megjelenített sorok: 0 - 29 ( 1 001 összesen, a lekérdezés 0.0038 másodpercig tartott)
Megjelenített sorok: 0 - 29 ( ~1 001 összesen , a lekérdezés 0.0026 másodpercig tartott)Gyorsabb, amit te írtál meg.

Query cache ürítés volt az 1. teszt után.
2x is megcsináltam ezeket a teszteket, mind a 2 esetben gyorsabb volt a case szerkezet. -
Speeedfire
félisten
válasz
rum-cajsz
#1153
üzenetére
Meglett a megoldás, ennyire nem volt drasztikus szerencsére.

ORDER BY FIELD(
TYPE , '1', '3', '2' )
PazsitZ: Ez is jónak tűnik, megnézem melyik a gyorsabb lekérdezésben.
Szerk.:
Amit írtam: a lekérdezés 0.0178 másodpercig tartott
Az általad írt: a lekérdezés 0.0005 másodpercig tartottA tied kicsit gyorsabb, még így 20db adattal is.

Szerk.: Na, most az enyémre is annyit írt mint a tiedre.

-
Speeedfire
félisten
Egy táblában ilyen mezők vannak.
id + name + typeA type most lehet 1,2,3
Lehet olyan lekérdezést csinálni, hogy a type szerint rendezze, de ebben a sorrendben? 3,1,2? -
Speeedfire
félisten
válasz
martonx
#1134
üzenetére
Látom te jobban otthon vagy azért ebben.

Nem próbáltam még egyik ilyen nosql-t sem, csak a mongoDB annyira dicsért lett már, hogy...egy ideje én is nagyon agyalgatok rajta, hogy nekiesek és megnézem mit tud.Az nginx-et csak azért írtam, mert azzal is lehet nyerni valamennyi szerver időt. Még ha csak mp-enként +1 lekérdezést is.

-
Speeedfire
félisten
-
Speeedfire
félisten
válasz
Sk8erPeter
#1121
üzenetére
Igen van. A többi sornál működik is a módosítás.

PazsitZ: Na, ezt megnézem majd.
-
Speeedfire
félisten
válasz
Sk8erPeter
#1119
üzenetére
Ja, nem a legjobb. De szerencsére csak localhost szóval, annyira nem nagy para.

Más: Adott egy admin panel php alatt, ahol ajax-al tudom módosítani egy mező értékét sql alatt. Érdekes mód, egy db ilyen sorban nem tudom módosítani. A yii nem dobott semmilyen hibát sem. Egyszerűen a mentésre azt írja, hogy nem sikerült neki.
De minden más adatnál sikerült. A fura, hogy phpmyadmin alatt viszont tudom ezt a sort szerkeszteni.
Se az sql, se a php, se az apache nem dob nekem erre hibát.
-
Speeedfire
félisten
válasz
Sk8erPeter
#1113
üzenetére
A 3-ason kívül minden megvolt. Ezek szerint anélkül nincs engedélyezve. Bár érdekes mód, így is tudok kapcsolódni custom felhasználóval.

Lehet sz*rul van az sql-em beállítva.
-
Speeedfire
félisten
Phpmyadmin-ban létrehoztam egy felhasználót, de azt írja, az engedélyezve oszlopba, hogy nem. Hogy lehetne engedélyezni ezt a felhasználót az adatbázisban?
Vagy ez mire vonatkozik? -
Speeedfire
félisten
válasz
Sk8erPeter
#1091
üzenetére
Valóban lehet 2 timestamp így. Max a create lesz megadva feltöltéskor, az on update meg a modify. Így talán a legjobb.

-
Speeedfire
félisten
Miért nem lehet 2 timestamp 1 táblában?
Ki akartam próbálni valamit.
Csináltam egy példa táblát, létrehoztam egy id-t, ami AI. Majd egy create-et, ami timestamp és default current_timestamp, akartam csinálni egy másikat is modify néven, de nem engedte, ez is ugyan az lenne mint a create, csak ugye on update current_timestamp.
Írja is az sql, hogy:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Új hozzászólás Aktív témák
- Apple iPhone 12 Mini 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 13 Pro Max 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3521
- Lian Li LCD-s 360mm-es vízhűtés akciós áron eladó!
- Apple iPhone 13 Mini 128GB,Átlagos,Dobozaval,12 hónap garanciával
- Dell Alienware AW3423DW 34 QD-OLED Gaming Monitor 27% ÁFÁS
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
















