1. Tranzakció rollback volt.
2. Aki inkább több SELECT-et használ, az hülye.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [Doky586:] Helyreállítási partíció létrehozása (javítása)
- [Re:] [sziku69:] Szólánc.
- [Re:] Toyota Corolla Touring Sport 2.0 teszt és az autóipar
- [Re:] [Mr Dini:] Hálózati problémából kiber-versenyfeladat!
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] Gurulunk, WAZE?!
- [Re:] [bb0t:] Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- [Re:] [GoodSpeed:] Új alaplap, vagy BIOS frissítés után beállítandók II. Secure Boot
- [Re:] [gban:] Ingyen kellene, de tegnapra
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Hozzászólások
martonx
veterán
megelőztél, tökéletesen egyetértek.
A több select használata, és az azokból szerver oldalon eredmény összeidétlenkedése tipikus SQL-ezni nem tudó programozói attitűd. Ezek nem hogy gyorsítanak, de brutálisan lassíthatják az adatfeldolgozást.
Én kérek elnézést!
Lacces
őstag
Aha, köszönöm a válaszokat. Csak számomra mindig olyan érdekes, hogy rám szólnak, hogy bontsam szét selectre, és ne Joinoljak. Ezért is tettem fel a kérdést, mert ez számomra furcsa volt itt. És néha van egy olyan érzésem, hogy rossz szokásokat vernek belém.
Meg szerintem a Join esetében kevesebb szerver oldali kódot kell írni.
Vannak még itt furcsaságok... külső kulcs használata is ritka, normálfomákkal is alig találkozom.
Aham a tranzakció rollback... Most ahogy néztem a folyamatot nekem is ilyen tűnt fel.
NoSQL számomra mindig is érdekes téma volt, mindig minden félét olvasok róluk. Nem sértődtem meg nagyúr . Jahm, most legalább rádöbbentem, hogy mennyi hiányoságom van még ilyen téren. És a saját webes projekteknél jobban össze kell kapnom magam .
Sk8erPeter
nagyúr
"Csak számomra mindig olyan érdekes, hogy rám szólnak, hogy bontsam szét selectre, és ne Joinoljak"
Ki szól rád? A munkahelyeden ilyen okos emberek dolgoznak?
Sk8erPeter
(#955) Speeedfire válasza Sk8erPeter (#954) üzenetére
Speeedfire
nagyúr
Bezzeg ha te lennél a munkatársa...
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
martonx
veterán
Sürgősen kezdj el rendes munkahelyet keresni, ahol szakértő programozók dolgoznak, nem pedig kontárok.
Én kérek elnézést!
Speeedfire
nagyúr
Úgy néz ki elfelejtek mindent...
Itt ezt nem értem, hogy mi van vele. Amikor az offsetet átállítom 15-re, akkor a 18,19-es id-jú sorok nincsenek ott. Miért?
Illetve más offset értékekkel is igen furcsa dolgokat ad vissza.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
(#959) Peter Kiss válasza Speeedfire (#958) üzenetére
Teljesen jól működik, amennyire látom.
PazsitZ
addikt
A LIMIT a leszűrt, kapott adathalmazra vonatkozik.
Így a 11, 12, 13, 18, 19 id-val ellátott sorok, amíg megjelennek LIMIT 10, 50 -nél, addig az említett 5 sor nem LIMIT 15, 50 -nél. Nem értem mi a probléma.
Ha 15-ös id feletti sorokat akarsz megkapni, akkor ugye a WHERE-ben kell megadnod, az id >15 feltételt.
Ígyál egy kávét, tolj egy minesweepert és fuss neki újra
(#961) Speeedfire:
A limittel lehet játszani, csak nem azt, amire itt most szerintem gondolsz.
Egyenletes, "szünetmentes" id sor esetén lenne esetileg igaz, amire gondolsz.
De ha bővebben kifejted, mi a cél lehet többet tudunk segíteni.
[ Szerkesztve ]
- http://pazsitz.hu -
(#961) Speeedfire válasza Peter Kiss (#959) üzenetére
Speeedfire
nagyúr
A 2. képen miért nem jeleníti meg a 18,19-es id-jú sorokat?
Illetve ha a limit 20, 50 akkor pedig a 25. id-val rendelkező az első nála.
Ennyire rövid az agyam, hogy nem jól emlékszem a limitre?
Az első paraméter a kezdő érték, a második pedig, hogy az elsőtől kezdve mennyi rekordot jelenítsem meg. Vagy nem?
PazsitZ: Hát akkor marad a where. Bár nekem tényleg úgy rémlik, hogy a limit-tel is lehet így játszani.
[ Szerkesztve ]
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
(#962) Peter Kiss válasza Speeedfire (#961) üzenetére
Első kép:
Kihagy 10-et;
Látszik: 11, 12, 13, 18, 19 és fölötte;
Második:
Kihagy 15-öt;
Látszik: 20 vagy fölötte; (15-10 => 5 darab, ami: 11, 12, 13, 18, 19)
[ Szerkesztve ]
(#963) Speeedfire válasza Peter Kiss (#962) üzenetére
Speeedfire
nagyúr
Oh, hogy az a. Valóban, most esett le, amit PazsitZ írt, hogy a leszűrt halmaz.
Köszi srácok.
Úgy látszik késő van már nekem...
[ Szerkesztve ]
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
syC
addikt
Sziasztok!
Egy kis segitség kellene. Bizotsan hibás a szintaktikám, valaki átnézné?
CREATE TRIGGER teszt_trigger1
after insert ON hirdetesek
FOR EACH ROW BEGIN
IF new.ccm=0 and new.nev like '% _._ %' -- Ha ccm értéke 0 és a nev sztringben van olyan 3 karakteres sztring aminek a 2. karaktere pont
SET @ccm=SUBSTRING(new.nev,LOCATE(new.nev,'.')-1 for 3); --@ccm változóba másold be
IF (IsNumeric(@ccm[0]) and IsNumeric(@ccm[2])) --ha a @ccm változó első és harmadik karaktere szám
INSERT INTO tr_teszt (ccm) VALUES(new.keres_azon,CAST(@ccm as FLOAT)*1000,'0','0'); -- illeszd be a tr_teszt.ccm cellába, floatként ezres szorzóval ( tehát 1.8 -> 1800 )
END IF;
END IF;
END;
Köszi
•
syC
addikt
Delimiter ...
Mentségemre legyen mondva, hogy a phpmyadmin hibát dob deklaráláskor, de valójában elfogadja a triggert.
•
martonx
veterán
Párszor már jeleztem itt, hogy a PHPMyAdmin hanyagolandó komolyabb SQL-ezéskor.
Én kérek elnézést!
Sk8erPeter
nagyúr
Hát nem tudom. Sajnos az általad ajánlott Toad for MySQL sem jobb az én tapasztalataim alapján. Nem biztos, hogy a phpMyAdmin okolható az általa tapasztalt probléma miatt (pl. arról nem esett egy szó sem, hogy kipróbálta-e simán, konzolról).
[ Szerkesztve ]
Sk8erPeter
http://www.sitepoint.com/dbninja-mysql-client/ - egy próbát talán megér.
lakisoft
veterán
És mi a helyzet a MySQL Wordbench-el? Nekem ez tökéletesen bevált, eddig.
Speeedfire
nagyúr
Nekem is, nem értem miért nem ajánlja senki sem.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
martonx
veterán
Legközelebb ha komolyabban MySQL-eznem kell, majd kipróbálom. Mondjuk én a toad for mysql-el elégedett voltam, de mindig nyitott vagyok a jobbításra.
Én kérek elnézést!
(#972) Sk8erPeter válasza Peter Kiss (#968) üzenetére
Sk8erPeter
nagyúr
Köszi az ajánlást, ezt kipróbáltam, és tényleg meglepően gyors! Ráadásul elég modern a felülete (ahogy a cikkben is kiemelik), egész kényelmes és intuitív a kezelése.
Ami engem zavar, és elég gyorsan feltűnt, az első pár perc tesztelgetés után:
1.) táblákra kétszer rákattintva először a struktúráját mutatja, ami még önmagában nem lenne gáz, de magához a tartalmához viszont kénytelen vagyok az SQL Management Studio-hoz hasonlóan rákattintani jobb gombbal, majd Use in Query menüben kiválasztani a Selectet. Pedig tesztelésnél van, hogy inkább azt szeretném megnézni, hogy mi a táblák tartalma, a struktúráját meg alapvetően elég kevésszer módosítom.
2.) amikor az előbb említett Use in Query > Select menüpontot kiválasztom, akkor a hosszú, legörgetett táblalistában felugrik magának az adatbázisnak a nevére, igazából itt a bal oldali hasáb görgetési állapota nem tudom, miért nem tud független lenni a jobb oldalitól, miközben úgyis AJAX-szal töltődik be a tartalom, miért kell, hogy felugorjon a fókusz az adatbázis nevére. Ez nagyon zavaró tud lenni, ha ismét ugyanazon a táblán akarsz valami műveletet végezni, és már megint scrollozhatsz le a listában.
3.) a query-k összepakolásánál hiányolom azt, ami megvan phpMyAdminban: a query összeállításánál felkínált lista a mezők nevével, amire elég csak rákattintani, és bedobja a textarea-ba.
Ettől függetlenül elég ígéretes, és tényleg nagyon gyors. De azért sztem a fentiekben még fejlődnie kell, mert elég alapvető igények (nem?).
Egyébként hol tárolja az elmentett dolgait? Nem kér külön adatbázist, táblák beállítását, mint mondjuk a phpMyAdmin. localStorage-ban vagy ilyesmi?
============
(#969) lakisoft :
Már elég rég használtam, de a MySQL Wordbench a dbForge Studio for MySQL-hez képest elég sok mindenben elmaradt, sok mindent hiányoltam belőle. Most nincs előttem, nem ugrik be hirtelen, mik voltak ezek, de a query-k összepakolása a dbForge-ban iszonyat kényelmes, míg a MySQL Workbench-ben nem nagy szám, nem lehet olyan szépen összerakni komplexebbeket.
Az is hozzátartozik viszont, hogy a dbForge nem ingyenes.
[ Szerkesztve ]
Sk8erPeter
(#973) Sk8erPeter válasza Sk8erPeter (#972) üzenetére
Sk8erPeter
nagyúr
Most látom, itt az 1-es pontban lévőt félreérthetően írtam, az SQL Management Studio-ban azért annyiból is sokkal jobb a dolog, hogy van lehetőség mondjuk az első 1000 sor listázására, nem kell külön rámenni, hogy na akkor ezt a query-t futtasd. Itt meg úgy működik, hogy ráklattyolsz a Use in Query > Selectre, aztán van egy külön gomb a query futtatására. Idegesítő ez a szükséges plusz felesleges kör.
Sk8erPeter
lakisoft
veterán
Nyugodtan nézd meg szerintem nagyon sokat fejlődött korábbi verzióihoz képest.
Sk8erPeter
nagyúr
Na, megnéztem.
Nagyon kíváncsi lennék: szerinted konkrétan miben fejlődött "nagyon sokat"?
Nagyjából semmi különbséget nem láttam ahhoz képest, mint amikor legutóbb próbáltam.
Még új júzert sem lehet hozzáadni, jogait menedzselni, pedig azt még a korábban mutatott, böngészőben kezelhető DBNinjával is lehet, persze nem is beszélve a phpMyAdminról, ahol elég normálisan van ez is megoldva.
Mondjuk az tetszik, hogy ott van a táblákra jobb klikkelve a "Select Rows - Limit 1000", tehát hogy nem kell külön rányomni a query futtatására, mint a DBNinjában, de asszem ez elég alapvető elvárás. Meg a phpMyAdminban azt is be lehet állítani, hogy egy átlagos selectnél defaultból hány rekordot kérdezzen le (tök hülye számokat is be lehet állítani, pl. 37).
A rekordok szerkesztése viszont tényleg kényelmes.
Az is tetszik, ahogy pl. egy UPDATE vagy INSERT query összeállításában segít, hogy mutatja a default értékeket is: http://i.imgur.com/32k8O.png.
De mondjuk elvileg még ez is alapvető elvárás lehet egy ilyen proginál (még ha ingyenes is).
Az is jó, hogy a szintaktikai hibákat egyből jelzi az editorban - ez sem egy hű de nagy valami.
DE ami kifejezetten hiányzik, hogy én nem találtam grafikus alapú query-összeállítót, ami van a dbForge Studio for MySQL-ben - persze utóbbi nyilván többek közt ezért sem ingyenes. Habár most ugrik be, az Microsoft SQL Server 2012 Express-ben található SQL Management Studio is tök ingyenes, mégis tudja ezt... (lehet, hogy most jön a hivatkozási alap, hogy a Microsoftnak több a tőkéje)
Ami viszont szerintem alapvető elvárás, az a korábban említett user-létrehozás, meg az, hogy importálni lehessen normálisan a MySQL dumpokat, a tömörített változatokat is (.gz), mint ahogy phpMyAdminban tök egyszerűen lehet is, kb. három klikk. De itt csak olyat találtam, hogy meg lehet nyitni egy .sql-fájlt, és azt le is lehet futtatni (OK, végül is így importálhatom a rekordokat), DE a tömörített állományokat (.gz) már el sem fogadja. Hát ez mi?
Szóval én ezek miatt nem vagyok túlságosan elragadtatva a MySQL Workbench-től, mert a böngészőalapú phpMyAdmin az alapvető, elvárható funkciókból (lásd utóbbi kettő) még mindig többet tud, még ha lassabb is.
[ Szerkesztve ]
Sk8erPeter
PazsitZ
addikt
user letrehozas, komplett elore konfiguralt jogosultsag szintekkel van. Szerintem korabban is volt.
Tomoritett fajl import nem tudom van-e alapbol, de nem tudom miert akkora gond ez.
A grafikus query osszeallitot meg hagyjuk mar, elhiszen, h lehet vele jot jatszani, de azon tul...
[ Szerkesztve ]
- http://pazsitz.hu -
lakisoft
veterán
Nem azt mondtam rá hogy tökéletes hanem hogy jól használható.
Sk8erPeter
nagyúr
"user letrehozas, komplett elore konfiguralt jogosultsag szintekkel van. "
Hol?
Csak gyorsan végigkattintgattam, simán lehet, hogy elkerülte a figyelmemet, de én nem találtam.
"Tomoritett fajl import nem tudom van-e alapbol, de nem tudom miert akkora gond ez."
Nem értem a kérdést. Hogyhogy miért gond? Ha egy tömörített dumpot akarok importálni, akkor már hogyne lenne gond? Ha phpMyAdminban meg tudták oldani, nem igazán értem, itt miért nem. De már a felvetésedet sem igazán látom be, hogy miért ne lenne gond.
"A grafikus query osszeallitot meg hagyjuk mar, elhiszen, h lehet vele jot jatszani, de azon tul..."
Azontúl is nagyon hasznos, sokszor jóval gyorsabb, mint kézzel megírni egy rohadt komplex query-t. A gyakorlatban is vettem már hasznát pl. dbForge-nál, amikor tényleg nagyon sok táblát kellett összekapcsolni egy számtalan paramétert, beállítást összekapcsoló query-hez.
Gondolom azért mondod, hogy csak játékra jó, mert nem volt még olyan igény, amire hasznát vehetted volna. Ettől még nem kell ilyen szélsőséges kijelentést tenni, mert számolhatnál azzal is, hogy nincs igazad. Még mindig jobb egy elég jól összepakolt, rohadt nagy query-t átírni pár helyen, mint kézzel, hibákkal lepötyögni a teljeset mindenféle segítség nélkül.
Talán ha kipróbálnád egyszer...
(#977) lakisoft : OK.
Sk8erPeter
lakisoft
veterán
Meg kell írni a hiányosságokat a fejlesztőcsapatnak hátha ráharapnak és megcsinálják.
wmati
addikt
Ezzel mit tudok kezdeni ?
SQL-lekérdezés:
CREATE TABLE `members` (
`id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 65 ) NOT NULL DEFAULT '',
`password` VARCHAR( 65 ) NOT NULL DEFAULT '',
PRIMARY KEY ( `id` )
) TYPE = MYISAM AUTO_INCREMENT =2;
A MySQL mondta:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM AUTO_INCREMENT=2' at line 6
PazsitZ
addikt
Kezdő értéket kapásból nem tudsz adni, de utólag állíthatod:
ALTER TABLE `members` AUTO_INCREMENT = 2;
- http://pazsitz.hu -
wmati
addikt
picit egyszerűbben elmondanád?
[ Szerkesztve ]
PazsitZ
addikt
Jobban megnézve tévedtem. A TYPE helyett ENGINE kell, ez volt a hiba.
Azt meg nem is tudtam, hogy így lehet auto increment-et inicializálni.
CREATE TABLE `members` (
`id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 65 ) NOT NULL DEFAULT '',
`password` VARCHAR( 65 ) NOT NULL DEFAULT '',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM AUTO_INCREMENT = 2;
[ Szerkesztve ]
- http://pazsitz.hu -
wmati
addikt
Már csak össze kell kötnöm php oldalakkal
MadarasTESCO
csendes tag
szevasztok
kaptam egy feladatot, mert berágott a tanár amiért a csoport f@szbúkozott órán, és ennek én is megszívom a levét. ha nincs kész, vagy legalább valami próbálkozás akkor meghúz engem is mert én is a scoport tagja vok. nem értek sokat az SQL-hez, kb egy-két hete kezdtünk el foglalkozni vele. a feladat az hogy sql paranccsal mySQL-ben ki kell iratni 15000 random generált magyar típusú rendszámot, úgy hogy ne legyen két ugyanolyan. aki tudja a megoldást kérem írja le a parancsot. és magyarázza el mi micsoda. aki nem tudja a kérdésre a választ csak bele akar szólni a dologba, pl hogy miért fb-ztek órán miért nem figyeltek oda, az kérem ezeket tartsa meg magának. holnapra kéne a dolog. pls HELP. előre is köszönöm.
lakisoft
veterán
Ha valamiben elakadsz és forráskódot kell nézni abban szivesen segítek. De nem oldom meg helyetted a feladatod.
(#987) Sk8erPeter válasza MadarasTESCO (#985) üzenetére
Sk8erPeter
nagyúr
Most csak rohanva írok, úgyhogy csak részsegítség, de a háromjegyű szám generálása (a magyar rendszám második feléhez) elég egyszerű, lásd [link]:
"To obtain a random integer R in the range i <= R < j, use the expression FLOOR(i + RAND() * (j – i)). For example, to obtain a random integer in the range the range 7 <= R < 12, you could use the following statement:
SELECT FLOOR(7 + (RAND() * 5));
"
Szóval például:
SELECT FLOOR(100 + RAND() * (900)) AS szamok
Ezt persze még konkatenálni kéne a háromjegyű, angol ábécéből generált random stringgel, meg a kötőjellel (mármint ezek a szám elé mennek), meg 15 ezer db-ot mindebből ledarálni. Biztos a tanár meg akarta oldani, de nem sikerült neki, ezért rátok bízza a piszkos munkát.
Sk8erPeter
Sk8erPeter
nagyúr
facepalm... bocsi, de ilyen hsz.-t minek írsz? Konkrét segítségre vágyott, ez kiderült a hozzászólásából, nem a semmire.
Sk8erPeter
(#989) Sk8erPeter válasza MadarasTESCO (#985) üzenetére
Sk8erPeter
nagyúr
A legprimitívebb, legegyszerűbb megoldás talán ez lehet egy random rendszám kidobálására:
SELECT CONCAT(
CHAR(65+MOD(ROUND(RAND()*100),26)),
CHAR(65+MOD(ROUND(RAND()*100),26)),
CHAR(65+MOD(ROUND(RAND()*100),26)),
'-',
FLOOR(100 + RAND() * (900))
) AS 'rendszam'
Sk8erPeter
(#990) MadarasTESCO válasza Sk8erPeter (#989) üzenetére
MadarasTESCO
csendes tag
kösz, kiagyaltuk már.
(#991) Sk8erPeter válasza MadarasTESCO (#990) üzenetére
Sk8erPeter
nagyúr
És milyen megoldást választottatok?
Amúgy üzenem a tanárnak, hogy elég rosszak a pedagógiai módszerei. Szerintem ez rohadtul nem kezdőknek való feladat, és messze áll attól, ami a gyakori adatbázis-kezeléshez kell. Ezerszer értelmesebb lenne táblák megtervezésével, összekapcsolásával kapcsolatos feladatot adni...
Nagyon tud irritálni, amikor egy tanár a diákok kedvét még idejekorán elveszi az informatikától.
[ Szerkesztve ]
Sk8erPeter
laracroft
aktív tag
Sziasztok!
Van egy lekérdezésem, amit bizonyos időközönként le kell futtatnom:
select * from NAPLO where LEIRAS like "%10-es%" and IDO between "2012-11-01" and "2012-11-25"
select * from NAPLO where LEIRAS like "%20-as%" and IDO between "2012-11-01" and "2012-11-25"
... és így tovább 100-ig.
Igazából arra vagyok kíváncsi, hogy a megadott időintervallumban hány darab ilyen esemény volt.
Ezt egyenlőre csak 10 különálló lekérdezéssel tudom megoldani.
Valahogy egyszerre szeretném lefuttatni a lekérdezést úgy, hogy ehhez hasonló eredményt kapjak:
10-es eset : 500 db
20-as eset: 4002 db
30-as eset: 102 db
...
előre is köszi!
martonx
veterán
Egy dinamikusan összerakott select-et beleraksz a while-ba, ahol 10-esével növeled a változódat
Vagy írsz egy szép nagy union-os select-et
[ Szerkesztve ]
Én kérek elnézést!
laracroft
aktív tag
Aha union!
Meglestem a helpet...
Ez jó lesz
köszi
Apollo17hu
őstag
Nem tudom leellenőrizni a szintaktikáját, de én így csinálnám (aposztróf kell, nem?):
SELECT t.leiras
,COUNT(*) || ' db'
FROM naplo AS t
WHERE
t.ido BETWEEN '2012-11-01' AND '2012-11-25'
AND t.leiras LIKE '%0-_s%'
GROUP BY t.leiras
vagy így, ha 100 felett még menne akár millióig, de azokra nincs szükséged:
SELECT t.leiras
,COUNT(*) || ' db'
FROM naplo AS t
WHERE
t.ido BETWEEN '2012-11-01' AND '2012-11-25'
AND (t.leiras LIKE '%10-es%'
OR t.leiras LIKE '%20-as%'
OR t.leiras LIKE '%30-as%'
OR t.leiras LIKE '%40-es%'
OR t.leiras LIKE '%50-es%'
OR t.leiras LIKE '%60-as%'
OR t.leiras LIKE '%70-es%'
OR t.leiras LIKE '%80-as%'
OR t.leiras LIKE '%90-es%'
OR t.leiras LIKE '%100-as%')
GROUP BY t.leiras
(#996) Sk8erPeter válasza Apollo17hu (#995) üzenetére
Sk8erPeter
nagyúr
"aposztróf kell, nem?"
Alapértelmezésben tök mindegy, ez MySQL.
http://dev.mysql.com/doc/refman/5.0/en/string-literals.html
(#992) laracroft :
"egyenlőre" ----> "egyelőre"
Sk8erPeter
laracroft
aktív tag
Köszi a válaszokat és a helyesírási tanácsot is
laracroft
aktív tag
Sziasztok!
Előre is bocs, ha nem egyértelmű mit szeretnék, de próbálok világosan fogalmazni
Van egy NAPLO táblám, aminek a LEIRAS mezőjében szeretném megszámolni hányszor szerepel ez a 2 szó: Helyszínen és Leellenõrizve.
A ügyfelet egyértelműen az ACCOUNT és a LINE mező azonosítja. Az IDO mező datetime típusú.
1 bejegyzésben csak az egyik szó szerepelhet, de előfordulhat, hogy egymás utáni bejegyzésekben szerepel a 2 szó ugyanannál az ügyfélnél.
Feltétel:
Ha mindkét szó szerepel egy ügyfélnél, akkor nézze meg, hogy a két bejegyzés között eltelt idő több-e mint 15 perc.
Ha igen számolja 2-nek,
ha nem -tehát a 2 bejegyzés között kevesebb mint 15 perc van- akkor csak 1-nek.
Ezzel próbálkoztam, de syntax error-okba futok
select ACCOUNT, LINE, IDO, LEIRAS
from (
(select ACCOUNT, LINE, IDO, LEIRAS
from NAPLO
where a.LEIRAS like '%Helyszínen%') as a
union
(select ACCOUNT, LINE, IDO, LEIRAS
from NAPLO
where b.LEIRAS like '%Leellenõrizve%') as b
)
where if(a.ACCOUNT = b.ACCOUNT and a.LINE = b.LINE) then timestampdiff(minute, a.IDO, b.IDO) > 15
group by ACCOUNT
előre is köszi!
[ Szerkesztve ]
Apollo17hu
őstag
Szerintem az IF-fel lesz gond, ha addig nem érkezik válasz, este megnézem.
Sk8erPeter
nagyúr
Szerintem ezzel van a para:
....
(select ......, LEIRAS
from NAPLO
where a.LEIRAS like '%Helyszínen%') as a
union
(select ...., LEIRAS
from NAPLO
where b.LEIRAS like '%Leellenõrizve%') as b
....
az a.LEIRAS és b.LEIRAS mezőkre gondolok, így nem hivatkozhatsz rájuk, mert az alquery-ben nem ismeri a MySQL, hogy mi az az "a" meg mi az a "b".
Az alquery-n, a zárójeles részben belül szerintem nem is kell az alias, vagy ha mégis, akkor jó helyre írd az aliast, például:
(select ......, LEIRAS
from NAPLO n1
where n1.LEIRAS like '%Helyszínen%') as a
Remélem nagyjából érthető, mire gondolok.
Ja, bocs, most néztem tovább, tényleg, tuti, hogy az IF is szar.
De mondjuk sokat segített volna, ha bemásolod a konkrét hibaüzenetet, hogy mire hivatkozik.
Szerintem CASE-t kéne használnod:
http://dev.mysql.com/doc/refman/5.0/en/case.html
Na, ha nem sikerül, megnézem normálisabban is, most ennyire tellett.
[ Szerkesztve ]
Sk8erPeter
Mai Hardverapró hirdetések
prémium kategóriában
- Keresek - Macbook Air M3 16GB / 24 GB - 512 GB SSD - Magyarországi beszerzés, tehát kb. 3 év garit
- Tyű-ha Lenovo Thinkpad T14 G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 16GB /512GB FHD IPS
- Ej-ha Lenovo Thinkpad T14 G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 32GB /512GB FHD IPS
- Eladó Nitro Venture TLS Snowboard Bakancs 46-os
- Eladó Nitro Team 2022 162W Snowboard Deszka