- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Milyen billentyűzetet vegyek?
- Gaming notebook topik
- Épített vízhűtés (nem kompakt) topic
- Ismét 128 és 256 GB-os memóriaszetteket villantott a G.Skill
- BIOS frissítés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- SSD kibeszélő
- A Windows 11 lett az úr az asztali PC-k piacán
- Milyen asztali (teljes vagy fél-) gépet vegyek?
Új hozzászólás Aktív témák
-
-
AKG
tag
Üdv mindenkinek.
Ismét felteszem a kérdésem,hátha valaki segítene nekem
Egy számomra összetett kéréssel fordulnék a szakértőkhöz.
Egy spéci program kiszolgálásához szeretném telepíteni a mysql-t.
Van egy angol nyelvű pdf dokumentumom,ami leírja a telepítés,illetve a konfigurálás menetét,de ez a téma nekem már nem angol,hanem kínai.
Ha esetleg valaki érthetően,szájbarágósan el tudná magyarázni a doksi alapján a teendőket,vagy esetleg megcsinálná a gépemen a telepítést,és a konfigurálást,az igen nagy segítség lenne nekem.
Előre is köszönöm a segítséget.ui: a doksit természetesen el tudom küldeni
-
pakriksz
őstag
értelmesen fogalmaztam, nyilvánvaló hogy nem egy telepíthető sql szerverprogramot keresek, mert azt nem kell keresni. Amazon RDS nem ingyenes, de regisztrálni sem lehet, mert szokásos amcsi cég módjára alapnak veszik a retkes dombornyomott bankkártyát, ami kell a regisztrációhoz, és nekem nincs.
-
CSorBA
őstag
Erre gondoltam én is, de abból indulok ki, hogy az ügyfél hülye.
Szóval képes beírni ilyen számokat:
70/1234-456
3630/123-456
123-456
+1120-123-456Szóval így nem nagyon tudom, melyiket szánta körzetnek, és melyik a telefonszámnak, vagy épp írt-e elé még országot is. Szóval gondoltam rá, h. tárolásnál csak strippelem, és a számokat hagyom meg, szóval a fentiből lesz:
701234456
3630123456
123456
1120123456De ebből nem fogom tudni, hogy melyiket hogy írta, ezért ha már ezt választom, akkor kénytelen vagyok a telefon oszlopot három felé bontani. (ami mellesleg rögtön 9 lesz, mivel egy rekordhoz 3 szám is tartozhat)
-
CSorBA
őstag
találtam egy ilyen csodát: UDF Repository: preg_replace function [link]
Szóval így megtudnám kb így:
WHERE PREG_REPLACE('/[^0-9]/',"",'phone_number') LIKE '%1234%';
Ami baromi jó lenne, ha saját szerver lenne, és tudnék telepíteni ilyet :S
szerk.:
Bár ha nagyon unatkozom, lehet átalakítom a táblát kb ilyenre:
phone_country
phone_area
phone_numberaztan csak CONCAT()-al összefűzöm, és abban már megy a LIKE....
-
martonx
veterán
válasz
pakriksz #790 üzenetére
ember, miért nem lehet értelmesen fogalmazni? Te egy ingyenes hosting szolgáltatást szeretnél mysql-el. Nos a jó hír, hogy ilyenekkel tele van az internet.
A rossz hír, hogy ha csak és kizárólag a mysql-t akarod használni, akkor azt csak localhost-ból engedélyezik.
Ha tényleg csak MySQL kell, akkor továbbra is azt mondom, hogy felhőből futtasd. Amazon RDS-re vethetnél egy pillantást. Ugyan nem sikerült a kalkulátorukat működésre bírnom (vagy tényleg ingyenes lenne, bármilyen extrém terhelés esetén is?), de szvsz nagyon pici pénzért lehet mysql-t felhőben hosztingolni. -
CSorBA
őstag
Sziasztok!
Hogy tudok where esetén egy mezőre olyan módon keresni, hogy regexpet alkalmazhatok közben rá.
Pl van egy telefon oszlopom, melyben pl van egy ilyen érték: 70/123-4567
Akkor ezt kiadja 1234 -re keresve is.
-
pakriksz
őstag
hello
Tud valaki olyan ingyenes mysql szervert, ami vagy több felhasználónevet és jelszót támogat, beállítható jogosultságokkal, és titkosított kapcsolatot támogat(legalább a jelszó és felhasználónév átvitelére)?
-
martonx
veterán
Akkor most MS SQL? Mert annak nem 1433 a portja...
A hoszting cégek eléggé segítőkészek szoktak lenni, feltéve, hogy nem egy havi 200 Ft-os, vagy ingyenes csomagról van szó.
Ilyen pusztán technikai kérdésekben egy fórumban nem fogunk tudni segíteni, pláne, ha nem voltál rest és előtte utána jártál a témának. Azon őszintén meglepődnék, ha a vesszővel beírt portszám működne, bár ki tudja nem vagyok nagy PHP szaktekintély. -
pckownz
őstag
Kicsit hülyén fogalmaztam. Webszerverről akarok kapcsolatot létesíteni a VPS-en lévő MS SQL kiszolgálóval. A webszerveren lévő SQL pedig nem használható (ki is van kapcsolva), mert a VPS-en lévőre lenne szükségem.
Valszeg beszélek valakivel a hostingnál, bár nem fűzök hozzá túl sok reményt... -
pckownz
őstag
Sziasztok. Nem tudok weboldallal connectelni a VPS-en lévő SQL szerverre.
Megnéztem, alap portot használ, tűzfalban engedélyeztem (1433 UDP).
Valamiért még sem jó.
Ötlet?php-ban így adtam meg az elérést:
xxx.xx.xxx.xxx,1433 -
PazsitZ
addikt
A tába így néz ki:
users:
id name
1 Soak
2 PazsitZ
3 xyrelation (id elhagyható, akkor a elsődleges kulcs: (user, friend), egyéb esetben csak unique key):
id user friend
1 1 2
2 1 3kérdés ezzel magvan a kapcsolat vagy kellenek továbnbi mezők, nálad ezek szerint számít az irány tehát kell:
3 2 3
Ekkor mi kölcsönösen haverok vagyunk id:1. relation soka haverja PazsitZ-nek
id:3 PazsitZ haverja Soaknakid:2 itt csak Soak haverja xy-nak, de xy-n nem haverja Soaknak.
Amit írsz, hogy text/blob-ban tárolni egy user kapcsolatát, nem működőképes, nem tudsz kapcsolatot felállítani join-al, nehezen kezelhető...
-
Soak
veterán
Na, leesett , hogy miről beszélsz, nem is értem miért nem értettem
.
Gondoltam két dologra, az egyik ,hogy csinálok egy friendship táblát, lesz benne egy id oszlop, ami PK, a következő egy users_id lenne, ami nyilván minden usernek egyedi, és lenne két oszlop még az egyik az egyoldalu kapcsolatos userek id-ját tárolná a másik meg a kétoldalut . Ezzel csak az a gondom, hogy nem tudom hogyan kéne berakosgatni az id-kat egymás mögé, meg ha van mondjuk 50.000 id, és valakinek az utolsó 1000 benne van a táblájában, nem okoz gondot, hogy csak az id-k 5000 karaktert kitesznek az egyik kapcsolatnál?A másik amire gondoltam, hogy a usernek adok egy 2. id-t (amit te is írtál) , majd teszek még ugyanúgy két oszlopot a userhez és innentől ugyanaz a probléma mint az előzőnél .
Valaki kapcsolja fel a villanyt
-
Soak
veterán
Szia,
Köszi a segítséget. A kapcsolat két féle kell ,hogy legyen, vagyis inkább ugy mondom két fajta kapcsolatra van igény . 1. Mikor a user a másik usertől egyoldalúan kapja a contentot, 2. mikor a user szimplán kapcsolatban van és igény szerint látja/hozzáfér az általa megosztott fileokhoz .
Összetett kulcs esetén nem. Esetleg alkalmazol egy PK oszlopot is és az id1, id2 oszlopokat simán UNIQUE-ra rakod.
Ezt értem, meg is tudom csinalni
.
PRIMARY(id1, id2)/ kulcs esetén lehet 100 kapcsolat is
Ezt viszont nem tudom elképzelni, hogy miként működne.
-
Sk8erPeter
nagyúr
válasz
vakondka #772 üzenetére
Szívesen, örülök, hogy segítettem.
Amúgy még annyi kimaradt, hogy a SELECT melletti felsorolásnál persze ne felejts el majd egyedi nevet adni a `products_name` mezőknek, hogy egyértelműen le tudd majd kérdezni mondjuk PHP-vel.(csak példa: pdesc_4.`products_name` AS products_name_4)
======
(#771) PazsitZ :
nekem most nem jut eszembe jobb/gyorsabb megoldás tárolt eljárással sem.
Mire gondolsz? -
vakondka
őstag
válasz
Sk8erPeter #770 üzenetére
Szia,
Tökéletes!
Nálam az élő szerveren 0,0021 alatt futott le ami szuperKöszi!
-
PazsitZ
addikt
válasz
vakondka #769 üzenetére
Elsőre ez ugrik be:
SELECT products_id, products_model, products_price, pd1.products_name, pd2.products_name, pd3.products_name
FROM products
LEFT JOIN products_description pd1 ON pd1.product_id = products.product_id AND language_id = 1
LEFT JOIN products_description pd2 ON pd2.product_id = products.product_id AND language_id = 2
LEFT JOIN products_description pd3 ON pd3.product_id = products.product_id AND language_id = 3;De biztos van szebb megoldás is, mondjuk PROCEDURE-t használva.
mod: Lemaradtam.
-
Sk8erPeter
nagyúr
válasz
vakondka #769 üzenetére
Hali!
Szerintem legegyszerűbb megoldás INNER JOIN-olni újból ugyanazzal a táblával, az alábbi lekérdezést teszteltem is, nálam 0.0015 másodperc alatt lefutott:
SELECT
pr.`products_id`, pr.`products_model`, pr.`products_price`,
pdesc_1.`products_name`, pdesc_4.`products_name`, pdesc_5.`products_name`
FROM
`products` AS pr
INNER JOIN
`products_description` AS pdesc_1
ON pr.`products_id` = pdesc_1.`products_id`
AND pdesc_1.`language_id` = 1
INNER JOIN
`products_description` AS pdesc_4
ON pr.`products_id` = pdesc_4.`products_id`
AND pdesc_4.`language_id` = 4
INNER JOIN
`products_description` AS pdesc_5
ON pr.`products_id` = pdesc_5.`products_id`
AND pdesc_5.`language_id` = 5Itt a táblák neveit a JOIN-nál direkt úgy neveztem el, hogy beszédes legyen, tehát ha pl. a 4-es language id-vel JOIN-oltam, akkor pdesc_4 lett a JOIN-olt tábla neve.
Remélem erre gondoltál. -
vakondka
őstag
Sziasztok,
Van egy products és egy products description táblám.
Itt van a products_id, products_model, products_price mezőkA products description táblában vannak a products_id, language_id és a products_name,
vagyis ugyanaz a termék más nyelven egy új rekord ebben a táblában.Úgy kellene ezeket lekérdeznem, hogy a products_id, products_model, products_price és a 3 nyelven a megnevezés a language_id alapján (1,4,5) egymás mellé kerüljenek.
Hogy lehet ezt megoldani? -
PazsitZ
addikt
Összetett kulcs esetén nem. Esetleg alkalmazol egy PK oszlopot is és az id1, id2 oszlopokat simán UNIQUE-ra rakod.
PRIMARY(id1, id2)/ kulcs esetén lehet 100 kapcsolat is.
Arra kell figyelni, bár ez függ attól, hogy logikailag hogyan kezeled, hogy az (1,2) és (2,1) relációk szükségesek-e számodra vagy sem.
Ha csak a kapcsolat megléte számít az iránya nem, akkor ne engedd az ilyet, ha számít, akkor szerepeltetned kell mindkét "kapcsolatleírást" a friendship tábládban. -
Soak
veterán
válasz
Peter Kiss #766 üzenetére
Köszi a választ, de nem igazán értem meg mondom őszintén
. Ha egyik user másik user akkor nem csak 1 kapcsolat lehet? Mi van ha van az egyik usernek 100 kapcsolata?
-
Soak
veterán
Sziasztok,
Nem igazán értem egyelőre, hogy user-user közti kapcsolatot hogyan tudnék létrehozni. A userhez gyönyörűen hozzá tudom kapcsolni a saját filejait és a fileokhoz tartozó további fileokat, viszont a user-user kapcsolatra nem tudok őszintén okosat mondani
. Tehát hogyan jelöljem ha valaki kapcsolatban van valakivel?Látja az általa tárolt fileokat. Plusz egy sorral a user táblába?
-
AKG
tag
Üdv mindenkinek.
Egy számomra összetett kéréssel fordulnék a szakértőkhöz.
Egy spéci program kiszolgálásához szeretném telepíteni a mysql-t.
Van egy angol nyelvű pdf dokumentumom,ami leírja a telepítés,illetve a konfigurálás menetét,de ez a téma nekem már nem angol,hanem kínai.
Ha esetleg valaki érthetően,szájbarágósan el tudná magyarázni a doksi alapján a teendőket,az igen nagy segítség lenne nekem.
Előre is köszönöm a segítséget.ui: a doksit természetesen el tudom küldeni
-
RexpecT
addikt
válasz
Sk8erPeter #761 üzenetére
De ezt szeretném, köszönöm a segítséget
.
-
Sk8erPeter
nagyúr
"Az adatbázis mentése sikerült egy .sql fájlba, de nem tudom, hogy hogyan is lehetne betölteni a Workbenchbe."
Nem az adatbázisba szeretnéd "betölteni" a dumpfájlt?
Vagy mi a célod?Pl. ez működik dumpfájl készítésére, majd az SQL-fájlból másik adatbázisba való betöltésre, konzolból:
C:\Users\Peter>mysqldump -u root -p1234 test > test_db_dump.sql
C:\Users\Peter>mysql -u root -p1234 another_test_db < test_db_dump.sql -
RexpecT
addikt
Lenne egy láma kérdésem:
Írok egy kis programot, ami az adatokat egy mySQL táblába exportálja, illetve onnan tölti be.
Maga a feladat egy gyakornoki állás jelentkezéséhez kellene, így a programmal együtt el kellene küldenem az adatbázist is.
Az adatbázis mentése sikerült egy .sql fájlba, de nem tudom, hogy hogyan is lehetne betölteni a Workbenchbe.
Tudtok segíteni? -
martonx
veterán
válasz
Speeedfire #757 üzenetére
Hátha ez segít:
Ebből kimásolva egy példa:
ALTER TABLE tbl_name
ADD [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option] -
Speeedfire
félisten
Valami miatt nem tudok egy "indexelést" megoldani.
CONSTRAINT fk_hirdetes_id
FOREIGN KEY (hirdetes_id) REFERENCES tbl_hirdetes (id)#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 'CONSTRAINT fk_hirdetes_id FOREIGN KEY (hirdetes_id) REFERENCES tbl_hirdetes (id)' at line 1
A tbl_hirdetes_extra tábla kiválasztásánal csináltam ezt, az index az él, de ugye nekem a táblák összekötése lenne a fontos.
-
martonx
veterán
1. akkor a join-ba tegyél még bele feltételt. Ha többször talál össze két sor, az vagy a db sémád hibája, vagy a join feltétel túl megengedő. Vagy ne a táblát join-old oda, hanem egy megfelelően megszűrt alselect-et).
2. amit írsz az evad_szeria-ról az a linkelt adatok, és a józan paraszti ész szerint sem követelnek meg egy teljesen felesleges táblát.
A helyedben továbbra is erősen újragondolnám a db-met, mert az egyes pont hibája is, mint mondtam jó eséllyel ide vezethető vissza.
-
raczger
őstag
evad_szeria az a versenyző profiljánál kell, hogy melyik évben milyen szériákon indul milyen rajtszámmal, egy évben akár 5 verseny széria is lehet, aztán következő évben ez lehet több vagy kevesebb is, más rajtszámmal
pont_qual és pont_race táblákat más okból nem lehet összevonni, ennek más oka van ami ezeknél a tábláknál nem látszik, sokat gondolkoztam, hogyan legyen az adatbázis, amire kell ez a szerkezet tűnt a legésszerűbbnek
sajnos ennél egyszerűbb ez nem lehet, mert akkor csak egy-egy versenyszéria pontozására lenne alkalmas, akartam egy kicsit általánosabb sémát csinálni a problémára
jelenleg egyébként azzal oldom meg a problémát, hogy aki egy hétvégén kvalon vagy valamelyik versenyen részt vesz mindenképp be kell írni akkor már az eredményét (legyen akár 0 pont) és akkor jól számolja ki a pontokat, tudom mi a hiba egyébként, csak a megoldásra nem sikerül rájönnöm, az a baj, hogy a sok left join miatt egy-egy sor duplikálódik, van, hogy ugyanaz a sor szerepel 50x-60x és ezt summolja amit elosztok ezen sorok számával
-
martonx
veterán
hááát, ez meg így túl részletes. Azt hittem sikerülnöd fog kiemelni és konkretizálni a lényeget, de nem. Na nem baj, majd a prog.hu-s időmilliomosok hátha segítenek.
Viszont pár tanács:
Felesleges minden kapcsolótáblának id-t adnod primary key-ként. Ezzel rendesen keresztbe teszel az adatbáziskezelőnek, bár pár ezer adatsorokig nem fog feltűnni, hogy lassú lesz a lekérdezés.
Az evad_szeria-nak sincs semmi értelme. Adj a szeria tábládhoz egy év mezőt, és máris egyszerűsödött a képlet. A sokadik normálformákhoz ragaszkodni az iskolában lehet, a gyakorlatban pont a nálad látott szörny select-eket, és hosszas nyomozásokat okoz.Aztán látatlanban összevonnám a pont_qual és a pont_race táblákat is. Jelezve, hogy az most verseny vagy csak kvalifikáció volt, és a megfelelő qual_id-t, vagy race_id-t hozzákötve.
És még lehetne sorolni a felesleges túlkapásokat. Azt javaslom első körben tedd rendbe a DB sémádat, és utána egy normális áttekinthető egyszerű sémát valószínűleg te is hibátlanul le fogsz tudni kérdezni.
-
raczger
őstag
Kicsit összetett a problémám, ezért nem sikerül kiutat találnom ebből. Tehát van egy több táblából álló adatbázisom, aminek az a lényege, hogy versenyzőnként, adott szériából, pl 2011-es évadból összesíti a versenyzők által megszerzett pontokat. Van kvalifikációs eredmény, első és második verseny, illetve versenyeken tud plusz pontokat szerezni a versenyző. Abban az esetben a lekérdezésem működik, ha egy adott versenyző egy-egy versenyhétvégén mindhárom eseményen részt vesz (kval, race1, race2), de ha egyiken nem, tehát nincs eredménye, akkor elég lehetetlen számot ír ki. A probléma ott van, hogy lekérdezésnél a sorok többszöröződnek, amiket elosztok ezen sorok számával, de mint említettem, ha egy versenyhétvégén valamelyik eseményén nem vesz részt, akkor már egy lehetetlen számot ad ki. A probléma megoldását ott látnám, hogy valahogy ki kellene szűrni a duplikált sorok számát bizonyos id-k szerint. Tehát megadom, hogy ugyanazzal a rendelkező versenyző, versenyhétvége, első, második verseny és kvalifikációs id-k ha többször szerepelnek csak egy sor jelenjen meg és most jön a lényeg, a SUM is csak ezeket a sorokat vegye, aztán a végén GROUP BY pedig a versenyző id-k szerint lenne.
-
asuspc96
senior tag
-
Sk8erPeter
nagyúr
Nem gond, dehát érted, miért szopás ez így: mindkettőnknek csak felesleges időpocsékolás az addigi egymás melletti elbeszélés.
Amúgy martonx-nek köszönd, végül ő mondta meg a megoldást.====================================
(#737) martonx : de tudod, mi az, ami ennél SOKKAL rosszabb? Amikor az embernek egy ennél hatványozottan rosszabb tulajdonságokkal rendelkező kollégája van, akinek akárhogy magyarázod el, hogy "b@szki ember, ez így szar" (csak ezt előbb egy finomabb formában), annak akkora pofája és egója van, hogy még azt is megmagyarázza, hogy én miért vagyok egy hülye f@sz, és menjek az anyámba az okoskodásommal (de persze még a főnökkel is vitatkozik) - leegyszerűsítve a szájából áradó mérgező fostenger-áradatot, aminek hatására először azt mondod, hogy ha ezt nem hagyja abba azonnal, megfojtod egy spárgával, egy vezetékes egér kábelével, vagy villát szúrsz a szemébe, vagy csak egy óvatlan pillanatban kidobod az ablakon, nem a földszintről...
de aztán veszel inkább egy nagy levegőt, kimész egy cigire, és úgy döntesz, hogy soha többé nem próbálsz vitába szállni (vagy egyáltalán szóba állni) azzal a gyerekkel, a saját egészséged kímélése érdekében. És máris boldogabban élheted az életed tovább, ignorálván egy életre nem érdemes embert.
Szóval a lényeg az egészből, hogy a közvetlen, valós tapasztalat, egy, a leírtakhoz hasonló élőlény valóságos látványa és a tőle hallottak ezerszer rosszabbak, mint egy-egy rosszul feltett fórumos kérdés, vagy az alapvetően más véleményekre nyitott, de kezdetben hülyeségeket beszélő emberkék.
-
sonar
addikt
válasz
Sk8erPeter #736 üzenetére
Elnézést. Nem mindig vagyok a szavak embere
-
martonx
veterán
válasz
Sk8erPeter #736 üzenetére
A sima sql-es topikban meg ott van a másik emberünk a "csak admin tudjon módosítani egy mezőt" SQL szinten agymenésével. Hihetetlenek.
-
Sk8erPeter
nagyúr
Nem, ebben a formában sem érthetőbb, csak már nagyjából sejteni lehetett, hogy mit szeretnél, szerencsére martonx feloldotta a misztikumot...
Elmondom, hogy lehetett volna érteni a kérdésedet egyből: "hogyan tudnám megjeleníteni az Item_Name nevű mezőből lekért rekordoknak csupán az első 4 karakterét?" .. vagy: "van egy Item_Name mezőm az adatbázisban. Hogyan tudnék olyan query-t írni, ami az ebben található rekordoknak csak az első 4 karakterét írja ki?" ... és így tovább....Ehelyett Te mindvégig a 2755-öt és 2756-ot nyomattad, ahelyett, hogy általánosítottad volna, így persze, hogy félreérthető volt.
-
sonar
addikt
válasz
Sk8erPeter #733 üzenetére
Azért mert ez azt adja vissza, hogy van nekem mondjuk 25 db 2755-ös bejegyzésem.
De én meg azt akarom látni, hogy van 2755 és van 2756 és van 2759 de nincsen 2758.
Talán igy már érthetőbb. Bocs ha keverek, de nem igazán tudom másképp megfogalmazni -
Sk8erPeter
nagyúr
Hogy mi van?
Nem értem, miért nem jó neked ez?
Nyilván ha nincs, akkor 0 lesz az eredmény, ha meg van, akkor több mint 0...Szerk.: de ha nagyon szeretnéd a DISTINCT-et használni, akkor azt is megteheted, hogy ezt a query-t használod:
SELECT DISTINCT(1)
FROM `test_table`
WHERE
`Item_Name` LIKE "2755%"
OR
`Item_Name` LIKE "2756%"
Így ha nincs eredmény, akkor lószart sem ad vissza (üres sorok), ha van, akkor meg 1-et...
Bár nem világos, miért nem jó a korábbi. -
sonar
addikt
válasz
Sk8erPeter #731 üzenetére
Sajnos nem igazán jól fejeztem ki magamat.
Amit te irtál az megszámolja, hogy hány van. Nos nekem csak az kellene, hogy van
2755 és van 2756..
Szerintem a Distinct-tel kellene valahogy operálni -
Sk8erPeter
nagyúr
Nem tudom, jól értem-e a kérdésedet, de úgy értelmeztem, hogy azt szeretnéd lekérdezni, vannak-e olyan elemek az Item_Name mezőben, amik 2755-tel vagy 2756-tal kezdődnek.
Ha igen, akkor ezzel a query-vel megkaphatod, hogy mennyi van, ami ezzel a kettővel kezdődik:
SELECT COUNT(*) AS number_of_items
FROM `test_table`
WHERE
`Item_Name` LIKE "2755%"
OR
`Item_Name` LIKE "2756%" -
sonar
addikt
Sziasztok,
Egy kis segitségre lenne szűkségem. Hogyan tudnám azt megoldani, hogy egy mezőnek csak az első négy karakterét figyelje a query?
Van egy rakás infóm az Item_Name oszlopban pl.:
2756B1X
2756B2X
2756B3X
2756C1X...
2755B1X
2755B2X
2755B3X
2755C1X...
de én csak annyit szeretnék vissza kapni, hogy van 2755 meg 2756
Excelben meg tudom csinálni ezt a plusz szűrést, de jó lenne ha ezt a plusz műveletet el tudnám hagyni. -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #728 üzenetére
Oké, csak most látom, hogy az SQL-kérdés topicban már oltottátok hasonló okok miatt a srácot.
-
Sk8erPeter
nagyúr
Igazából amit én nem értek, hogy mi a francnak tárolni a felhasználó korát, és állandóan UPDATE-elgetni egy mezőt. A felhasználó születési dátuma az teljesen biztos, hogy nem változik, tehát az adott, azt egyszer kell feltölteni (vagy ha elrontotta, akkor utólag módosítja, akkor elég UPDATE-elni ezt az egy mezőt (vagy ha szét van bontva évre, hónapra, napra, akkor annyi mezőt), de ez most a lényeg szempontjából tök mindegy), abból meg bármilyen másik művelethez azonnal le lehet kérni az aktuális életkort. Akár megjelenítéshez, akár máshova való felhasználáshoz. Szerintem inkább valami átgondolatlanság húzódhat a dolog hátterében.
-
retrox
csendes tag
Megvan a helyes kód:
<?php
$db_host = "localhost";
$db_username = "e107";
$db_pass = "e107";
$db_name = "e107";mysql_connect($db_host, $db_username, $db_pass);
mysql_select_db($db_name);
mysql_query("UPDATE e107_user_extended SET user_kora=floor(DATEDIFF(now(),user_birthday)/365.2425)");
?>
Kösönöm mindenkinek a segítséget.A feladat ütemezve,így naponta frissíti a kor mezőt. -
retrox
csendes tag
Ezt szeretném futtatni:
<?php
mysql_connect($db_localhost, $db_e107, $db_e107);
mysql_select_db($e107);
mysql_query("UPDATE e107_user_extended SET user_kora=floor(DATEDIFF(now(),user_birthday)/365.2425)");?>
ezt a hibaüzenetet kapom:
! ) Notice: Undefined variable: db_localhost in E:\wamp\www\e107\kor.php on line 2
Call Stack
# Time Memory Function Location
1 0.0021 365376 {main}( ) ..\kor.php:0( ! ) Notice: Undefined variable: db_e107 in E:\wamp\www\e107\kor.php on line 2
Call Stack
# Time Memory Function Location
1 0.0021 365376 {main}( ) ..\kor.php:0( ! ) Notice: Undefined variable: db_e107 in E:\wamp\www\e107\kor.php on line 2
Call Stack
# Time Memory Function Location
1 0.0021 365376 {main}( ) ..\kor.php:0( ! ) Notice: Undefined variable: e107 in E:\wamp\www\e107\kor.php on line 3
Call Stack
# Time Memory Function Location
1 0.0021 365376 {main}( ) ..\kor.php:0Hol rontottam el?Php guruk segítsetek.
-
martonx
veterán
Szia!
Nem tudsz funkciót megadni egy oszlop default értékének mysql-ben (ez mondjuk így 2012-ben elég tré, de a mysql legalább ingyenes).
Helyetted elolvastam az ide vonatkozó dokumentációt:
The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that you can specify CURRENT_TIMESTAMP as the default for a TIMESTAMP column.
Szóval vagy insertnél töltöd fel a kalkulált értékkel,vagy egy triggert raksz az insert eseményre, és az töltögeti.
-
retrox
csendes tag
Sziasztok.Mysql-es probléma:új oszlopot akarok beszúrni,ami egy meghatározás alapján feltöltődik rekordokkal. Pontosabban:Van egy user táblám,benne egy születési dátum mező.Az új oszlop amit létrehoznék az 'user_kor' mező.A cél az,hogy a születési dátumból kiszámolva automatikusan kitöltődjön a mező.A függvény megvan:
floor(DATEDIFF(now(), birthdate)/365.2425)
Akkor:
ALTER TABLE user ADD user_kor INT 'hogyan tovább?'
A segítségeteket előre is köszi. -
laracroft
senior tag
Köszönöm mindenkinek a hozzásszólást, sikerült elérnetek azt amit szerettem volna
Igyekszem megfogadni tanácsotokat, mind a szintaxis, mind az elgondolások terén!
Sajnos nem vagyok programozó, csak mindenhavi "szükségleteimet" próbálom könnyíteni eme nagyszerű programnyelv segítségével
(ez lehet így túl nyálas lett )még1szer köszönöm mindenkinek!!
üdv:
nzoli -
Sk8erPeter
nagyúr
válasz
laracroft #717 üzenetére
Az előző válaszokon túl annyit tennék hozzá, hogy
1. Nehezen áttekinthetővé teszi a kódodat (de még saját magad számára is), hogy csupa nagybetűvel írsz mindent. Legalább a mezőneveket ne (a SELECT, INSERT, UPDATE, AS, WHERE, ORDER BY, stb. kulcsszavakat megszokásból én is a mai napig nagybetűkkel írom - amúgy számomra talán épp a megszokás miatt így áttekinthetőbb is, mert tudom, mi a mezőnév, és mi nem - épp ezért érdemes legalább az egyiket kisbetűkkel írni).
2. MINDEN programnyelv esetén kerüld az ékezetek használatát. -
rt06
veterán
sot, igy talan meg egyszerubb:
SELECT CAST( UGYFEL.ACCOUNT AS UNSIGNED ) AS ÜGYFSZ, CAST( UGYFEL.LINE AS UNSIGNED ) AS VONAL
FROM UGYFEL
WHERE NOT EXISTS (
SELECT ACCOUNT, LINE FROM NAPLO_TESZT
WHERE NAPLO_TESZT.ACCOUNT = UGYFEL.ACCOUNT
AND NAPLO_TESZT.LINE = UGYFEL.LINE
AND NAPLO_TESZT.IDO > "2011-06-08 00:00:00"
AND NAPLO_TESZT.IDO < "2011-06-10 00:00:00"
) AND UGYFEL.ALLAPOT = "A";igy lekered azon ugyfeleket, akik allapota "A" es a megadott idointervallumban nincs hozzajuk bejegyzes a naploban
-
martonx
veterán
válasz
laracroft #717 üzenetére
Maga a lekérdezés is túlbonyolított.
1. Te egy darab táblát kérdezel le. Minek ehhez alselect? Illetve az alselect egész jónak tűnik, minek ehhez főselect???
2. Felesleges alakítgatni az account-ot, Line-t, ha karakteres, ha nem.Tehát az elgondolásod rossz volt, de az alselected nem reménytelen.
-
laracroft
senior tag
Sziasztok!
Már napok óta gyűrkőzöm egy MySQL lekérdezéssel, de sehogyan sem jutok dűlőre, hátha valaki tud nekem segíteni
Adott két tábla, naplo_teszt és ugyfel.
Szeretném legyűjteni azon ügyfeleinket, akiknek a megadott időintervallumban és feltételek mellett nem voltak bejegyzéseik a naplóban. Egy ügyfelet egyértelműen 2 mező azonosít, az "ACCOUNT" és a "LINE".
Sajnos az ACCOUNT és LINE karakteres, ezért kell átalakítanom numerikussá.Azt szerettem volna elérni, hogy a Összes ügyfélből kivonom a megadott időintervallumban lévőket, de nem ment.
Ezzel a lekérdezéssel próbálkoztam legutóbb, de ez is beégett, üres halmazt kaptam rá eredményként
SELECT CAST(UGYFEL.ACCOUNT AS UNSIGNED) AS ÜGYFSZ,
CAST(UGYFEL.LINE AS UNSIGNED) AS VONAL
FROM UGYFEL WHERE NOT EXISTS (
SELECT CAST(UGYFEL.ACCOUNT AS UNSIGNED) AS ÜGYFSZ,
CAST(UGYFEL.LINE AS UNSIGNED) AS VONAL,
UGYFEL.NAME1 AS NÉV,
UGYFEL.ALLAPOT AS ÁLLAPOT,
UGYFEL.ADDRESS1 AS VÁROS,
UGYFEL.ADDRESS2 AS CÍM,
UGYFEL.ADDRESS3 AS IRSZÁM
FROM UGYFEL LEFT JOIN NAPLO_TESZT
ON UGYFEL.ACCOUNT = NAPLO_TESZT.ACCOUNT AND
UGYFEL.LINE = NAPLO_TESZT.LINE
WHERE NAPLO_TESZT.IDO > "2011-06-08 00:00:00" AND
NAPLO_TESZT.IDO < "2011-06-10 00:00:00" AND
UGYFEL.ALLAPOT="A"
GROUP BY UGYFEL.ACCOUNT
ORDER BY ÁLLAPOT, VONAL, ÜGYFSZ)Mit ronthattam el? Rossz az elgondolásom?
Előre is köszönöm a válaszokat!üdv:
nzoli -
ArchElf
addikt
válasz
Sk8erPeter #714 üzenetére
Teszel köré egy ilyet:
SELECT user_id, Count(*) As count_user_id
FROM ( ... )
GROUP BY user_idAE
-
Sk8erPeter
nagyúr
Sziasztok!
Van egy viszonylag egyszerűnek tűnő kérdésem, biztos késő van, de most egyszerűen nem akar leesni, hogyan kellene megoldani.
Az egyik query-mnek ez az eredménye: [link].
Azt szeretném, hogy ebből az eredményből kiszedem azt, hogy hányszor szerepelt külön a user_id. Tehát ez végül is egymásba ágyazott lekérdezés lenne, ez az itt látható eredmény mondjuk egy temporary tábla lenne (mintha így csinálnám: SELECT * FROM (SELECT * FROM .......) AS temp_table ....), abból szednék ki adatokat.
Itt a képen pl. az látható az eredmények közt, hogy a 3-as user_id 5-ször szerepel az eredményben, a 9-es és 112-es csak 1-szer.
Ezt az eredményt szeretném tehát kapni a képen látható eredményből:
user_id | count_user_id
3 | 5
9 | 1
112 | 1Ez milyen lekérdezéssel valósítható meg?
Gondolom ezt a hozzáértők az eredeti query ismerete nélkül is meg tudják mondani.
Köszi! -
Jester01
veterán
Egyszerűen felrakod a D-re a mysql-t. A kliens pediglen hálózaton vagy pipe-on keresztül kapcsolódik majd a futó adatbázis szerverhez (ezt a kliensben kell beállítani). Vagyis nem a fájlokhoz fér hozzá. Tök mindegy milyen meghajtón vannak, mert a mysql szerver szolgáltatásnak kell futnia.
Ha el akarod különíteni a mysql szervert és az adat fájlokat is, akkor ezt a mysql-nek kell beállítani. Windowson nem tudom hogy megy ez (gondolom kattintani kell valahol
), linuxon a my.cnf-ben van egy datadir változó.
-
Norb37
csendes tag
Üdv mindenkinek.
Teljesen kezdő kérdéseket tennék fel,kérlek segitsetek megoldani a problémámat.
Adott egy laptop,amin kettő partició van.Az egyik partición egy spéci tervezőprogramot futtatnék,aminek egy kiegészitője igényli a MySQL-t.
A másik particiót mint szervert szeretném használni,tehát adattárolás a cél.
Letöltöttem a programot(MySQL,mivel legálisan ingyenes).
Mire kell figyelnem a telepitésnél,hogy a c-ről mint szervert lássam a d-t?
Kérlek ne offoljatok,angol tudásom a semmivel egyenlő.
Ha nem nagy gond,egy részletes leirást,vagy kalauzt keresnék erre a problémára,lehetőleg magyarul.
Előre is köszönöm a segitségeteket! -
martonx
veterán
Én a következőt tenném, hogy biztosan jó legyen:
1. csinálnék egy alselectet, ami garantáltan csak a legfrissebb commenteseket fogja tartalmazni:
select topic_id, max(letrehozva) as letrehozva
from comments
group by topic_id2. majd az 1-es alselectemet joinolnám a topicoc-hoz:
select t.nev, t.id, c.letrehozva stb
inner join (ide jön az 1-es pont kódja) c on c.tid = t.id
order by c.letrehozvavalami ilyesmi lenne a végeredmény, és ez biztosan csak a legutolsó hozzászólásokat fogja neked kilistázni.
-
tkazmer
addikt
sziasztok,
a következő problémám merült fel:
egy fórumról van szó, egy táblában vannak a topicok, egy másikban a userek, egy harmadikban oedig a hozzászólások.
egy olyan listát kellene csinálnom, ahol a topicok címe, a legutóbbi hozzászólás utolsó pár szava, a legutolsó hozzászóló neve, illetve a legutolsó hozzászólás dátuma van meg. ezt így próbáltam:
select forum_topicok.nev, forum_topicok.id, forum_comments.letrehozva, forum_comments.text from forum_topicok
join forum_comments
where forum_comments.forum_topicok_id=forum_topicok.id
group by forum_topicok.id order by letrehozva desc
valami miatt azonban nem a legutolsó hozzászólást teszi oda, hanem az utolsó előttit. mi lehet ennek az oka? hogyan lehetne rajta javítani? -
sonar
addikt
válasz
Jester01 #705 üzenetére
Nem!
SELECT * FROM tdc_lc_lot_info where order_no like 'TDC%' and Create_Time < date_sub(curdate(),interval 10 DAY);Hibaüzi:
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 'SELECT * FROM tdc_lc_lot_info where order_no like 'TDC%' and Create_Time < date_' at line 2Viszont a második kódsorod lefut szépen.
-
Jester01
veterán
-
sonar
addikt
válasz
Brown ügynök #702 üzenetére
Nem igazán jött be
Új hozzászólás Aktív témák
Hirdetés
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Motorola Moto G56 - bátyja árnyékában
- Nyaralás topik
- Kertészet, mezőgazdaság topik
- Milyen billentyűzetet vegyek?
- Anime filmek és sorozatok
- Gaming notebook topik
- Épített vízhűtés (nem kompakt) topic
- Gumi és felni topik
- Kerékpárosok, bringások ide!
- További aktív témák...
- LG OLED55G42LW LG Gyári garancia 3 év
- HP EliteBook 840G6 ! AKCIÓ!!! a készlet erejéig!
- Kobo Aura Edition 2 (N236) 6" háttérvilágításos kijelzővel, 4 GB-os tárhellyel - jó állapotban
- HP ProBook 430 G8, 13,3" FHD IPS, I5-1135GU CPU, 16GB DDR4, 256GB SSD, WIN 11, 27% áfás számla, 1 év
- Playstation Portal - 3 hónap Bolti Garanciával
- LG 48C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Olcsó Laptop! Új akkumulátor! Dell Latitude E6540 : I7 4600M / AMD HD8790M / 8GB DDR3 / 128GB SSD
- Eladó Apple iPhone Xr 64GB fekete / ÚJ KIJELZŐ / 100% AKKU / 12 hónap jótállással!
- Apple Macbook Pro 13 2020 - M1 - 8GB/256GB SSD - Touch Bar - 102 Ciklus - 99% Akku - Ezüst - MAGYAR
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest