Új hozzászólás Aktív témák
-
sonar
addikt
válasz Brown ügynök #702 üzenetére
Nem igazán jött be
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
Jester01
veterán
Ugye a curdate()-t nem tetted aposztrófok közé?
SELECT * FROM tdc_lc_lot_info where order_no like 'TDC%' and Create_Time < date_sub (curdate(),interval 10 DAY);
-vagy-
SELECT * FROM tdc_lc_lot_info where order_no like 'TDC%' and DATEDIFF(curdate(), Create_Time) > 10;
[ Szerkesztve ]
Jester
-
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.
[ Szerkesztve ]
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
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?úgy tervezték, hogy kibirjon egy atomtámadást is. De nekünk komolyabb fegyvereink vannak, mint pl Béla bá, a földmunkagépkezelő
-
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.
Én kérek elnézést!
-
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!Az áram alatt lévő alkatrészek pont úgy néznek ki,mint amelyikben nincs áram. Csak más a fogása!
-
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ó.
Jester
-
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![ Szerkesztve ]
Sk8erPeter
-
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
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
laracroft
aktív 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[ Szerkesztve ]
-
rt06
veterán
válasz laracroft #717 üzenetére
nem left, hanem inner join kell neked
a left join ugyanis lekeri azon ugyfeleket is, akikhez nincs naplobejegyzes, s igy mindenkit kiutsz
tovabba a belso select-be folosleges annyi mezo, a cast, es az orderPolitikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.
-
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.
Én kérek elnézést!
-
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
Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.
-
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.[ Szerkesztve ]
Sk8erPeter
-
laracroft
aktív 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[ Szerkesztve ]
-
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. -
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.
Én kérek elnézést!
-
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.
-
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. -
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.
Sk8erPeter
-
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
-
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.A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
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%"Sk8erPeter
-
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álniA tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
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.[ Szerkesztve ]
Sk8erPeter
-
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 megfogalmazniA tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
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.
[ Szerkesztve ]
Sk8erPeter
-
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.
Én kérek elnézést!
-
sonar
addikt
válasz Sk8erPeter #736 üzenetére
Elnézést. Nem mindig vagyok a szavak embere
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
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.
Sk8erPeter
-
asuspc96
senior tag
-
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.
www.movat.hu - http://bit.ly/2mIziA4
Új hozzászólás Aktív témák
- Nintendo Switch
- OnePlus 7 - magabiztos folytatás
- Villanyszerelés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Android másképp: Lineage OS és társai
- Mibe tegyem a megtakarításaimat?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Diablo IV
- Dobhatja a Google az Exynost és a Samsungot
- Gaming notebook topik
- További aktív témák...
- iPhone 14pro max 256gb 2025.02.04ig Gari!!
- AMD Ryzen 5 5600X BOX - Új, bontatlan, 3 év garancia - Eladó! 48.000.-
- Dell Latitude 9430 2-in-1, 14" QHD+ IPS 360 érintő -500nit-, i7-1265U, 32GB DDR5, 512GB NVMe, gar
- ThinkPad T15 Gen2 15.6" FHD IPS i7-1185G7 16GB 512GB NVMe magyar vbill ujjlolv., gar
- Honor 50 - 5G 8 + 256 GB eladó!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs