- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Milyen alaplapot vegyek?
- Háromféle processzor is része lesz a Core 200 sorozatnak
- 3D nyomtatás
- AMD Navi Radeon™ RX 7xxx sorozat
- Apple asztali gépek
- eGPU tapasztalatok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Melyik tápegységet vegyem?
Hirdetés
-
Új Beats fej- és fülhallgatók jelentek meg
ma Frissítette a Solo termékcsaládot az Apple házi audiomárkája.
-
Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
ph A Kereskedelmi Minisztérium egyelőre csak felméri a helyzetet, egyelőre nem látni, hogy tudnak-e bármit is tenni.
-
Xbox Game Pass [2024] - A májusi lista
gp Az elkövetkező időszakban többek között megkapjuk a Kona II Brume című játékot.
Új hozzászólás Aktív témák
-
őstag
-
biker
nagyúr
mondjuk nagyobb bajom, hogy ha a fulltext index előre be van állítva, és beimportálom a 180.000 sort, akkor csak 112-ezret importál be
erre a manual aztmondja, előre kapcsoljam ki az indexet, majd utólag új index, de ha a 180.000 sor be van tolva, akkor az indexelésnél hibát dob
#1034 error és 137-es hiba
erre a repair table sem megoldásMost itt szenvedek ezzel
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
martonx
veterán
-
biker
nagyúr
nem ,bakker, hülye vagyok.
drop index, create indexNo, kipróbálom ezzel majd! köszi
Martonx: még nem eldöntött, hogy mysql vagy php probléma. MErt ha a mysql tudna importálni iso-8859-2 szöveget utf8-ba (és tud, hiszen a set names és a set character set ezt lehetővé teszi, bármilyen STRING bemenetnél) akkor nem lenne gond. De sajna a load data csv-ből dolgozik, nem input stringből, és itt nem működik a jelek szerint a fenti metódus.
Így lesz a mysql gondból php gond
[ Szerkesztve ]
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Phvhun
őstag
Hogyan szokás egy olyan, mondjuk céges adabázist kivitelezni, amiben a cégadatok változhatnak, de a változásokat mind meg kell őrizni?
-
ValidFrom, CreatedBy, ValidTo, ClosedBy oszlopokkal ki kell egészítened azt a tábládat, amiben ilyen adatok vannak, de nem kell feltétlenül mindennek ebben lennie, készíthetsz egy plusz táblát, ami ...History, és abban van benne minden (ezzel a megoldással egyszerűbb ORM framework-höz illeszteni a cuccot).
-
Phvhun
őstag
válasz Peter Kiss #1208 üzenetére
és a history tábla az ugyanazokat a oszlopokat tartalmazza, mint az aktiális, vagy csak a változásokat ( Changetime, Changed_by, Data_name, Old_data, New_data ) ? mondjuk így
-
Brown ügynök
senior tag
Van két táblám, egy a raktári bevételezést, a másik pedig a kivételt mutatja. Ennek a kettőnek az összességéből megkapjuk a raktárkészletet. Íme a két tábla:
Bevételezés
Kivétel
Ez a lekérdezés a vártnak megfelelően működik:
SELECT product_id, SUM( quantity )
FROM `stock_intake_item`
GROUP BY product_idHa viszont hozzácsapom a kivétel táblát:
SELECT i.product_id, SUM( i.quantity ) , SUM( d.quantity )
FROM `stock_intake_item` i
LEFT JOIN stock_deliver_item d ON d.product_id = i.product_id
GROUP BY i.product_idMi lehet a gond? Illetve, ilyen esetekben érdemes-e csinálni egy harmadik táblát ami tulajdonképpen az aktuális készletet tárolnánk?
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
biker
nagyúr
válasz Brown ügynök #1211 üzenetére
nincs it semmi gond, az 1-es termékből nem adtál el, ezért az null
a többiből igencsinálj egy harmadik oszlopot a selectbe, amiben a két oszlop különbsége van!
talán így működhet? (vessző kimaradt )SELECT i.product_id, SUM( i.quantity ) , SUM( d.quantity ), (SUM( i.quantity ) - SUM( d.quantity ) ) as diff
FROM `stock_intake_item` i
LEFT JOIN stock_deliver_item d ON d.product_id = i.product_id
GROUP BY i.product_id[ Szerkesztve ]
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
martonx
veterán
válasz Brown ügynök #1213 üzenetére
A kivétel táblát subquery-ként kellene hozzácsapnod, mert így descartes szorzat keletkezik a product_id-k alapján.
Én kérek elnézést!
-
biker
nagyúr
válasz Brown ügynök #1213 üzenetére
ja, bocsi, tényleg
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Brown ügynök
senior tag
válasz martonx #1214 üzenetére
Köszi, így már működik:
SELECT i.product_id, SUM( i.quantity ) ,
( SELECT SUM( quantity )
FROM stock_deliver_item
WHERE product_id = i.product_id
) AS deliver
FROM `stock_intake_item` i
GROUP BY i.product_idHogy NULL-al is működjön a subqueryben az IFNULL() függvényt lehet használni.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
laracroft
aktív tag
Sziasztok!
Szükségem lenne a 2 lekérdezés darabszámaira külön-külön (darab1 és darab2), de mindenképpen csak 1 lekérdezést szeretnék használni.
SELECT UGYFEL.ACCOUNT AS account,
UGYFEL.LINE AS line,
NAPLO.IDO AS ido,
NAPLO.LEIRAS AS leiras,
COUNT(1) AS darab1
FROM UGYFEL,
NAPLO
WHERE NAPLO.ACCOUNT = UGYFEL.ACCOUNT
AND NAPLO.LINE = UGYFEL.LINE
AND leiras LIKE '%valami%'
GROUP BY account,
line
ORDER BY darab1 DESC,
line ASCSELECT UGYFEL.ACCOUNT AS account,
UGYFEL.LINE AS line,
NAPLO.IDO AS ido,
NAPLO.LEIRAS AS leiras,
COUNT(1) AS darab2
FROM UGYFEL,
NAPLO
WHERE NAPLO.ACCOUNT = UGYFEL.ACCOUNT
AND NAPLO.LINE = UGYFEL.LINE
AND leiras LIKE '%valami%'
AND ido LIKE "2013-05%"
GROUP BY account,
line
ORDER BY darab2 DESC,
line ASCElőre is köszönöm!
[ Szerkesztve ]
-
laracroft
aktív tag
válasz fordfairlane #1220 üzenetére
Szia!
Weblapon szeretném megjeleníteni mind a 2 értéket egyszerre!
A Union-ra én is rátaláltam, de azt nem ajánlották... -
laracroft
aktív tag
válasz fordfairlane #1222 üzenetére
Igen de bazi hosszú volt és gondoltam hátha van egy megoldás, ami esetleg gyorsabb és csak 1 lekérdezés...
-
fordfairlane
veterán
válasz laracroft #1223 üzenetére
Ha a két lekérdezés túl sokáig tart, akkor egy is. Át kéne nézni / gondolni a táblák-mezők indexelését, amivel gyorsítani lehet az ilyesfajta lekérdezéseken.
A másik lehetőség, hogy, jellemzően webes környezetben sokkal több a táblából olvasás, mint az írás. Ebben az esetben azokat az aggregált adatokat, amelyek csak írás esetén változhatnak meg, és a lekérdezésük időigényes, előre ki lehet számolni, majd valahogy letárolni. Kvázi gyorsítótárazni. Mondjuk ez jelen esetben nem igazán járható út, de talán részhalmazokat elő lehetne állítani, amiket aztán gyorsabb átfésülni.
[ Szerkesztve ]
x gon' give it to ya
-
Apollo17hu
őstag
válasz laracroft #1217 üzenetére
MySQL-t nem tudom, de "sima" SQL-ben így lehetne (rendezést kiszedtem):
SELECT *
FROM (SELECT ugyfel.account AS account,
ugyfel.line AS line,
naplo.ido AS ido,
naplo.leiras AS leiras,
SUM(CASE WHEN naplo.leiras LIKE '%valami%' THEN 1 END) AS darab1
SUM(CASE WHEN naplo.leiras LIKE '%valami%' AND naplo.ido LIKE '2013-05%' THEN 1 END) AS darab2
FROM ugyfel,
naplo
WHERE naplo.account = ugyfel.account
AND naplo.line = ugyfel.line
GROUP BY ugyfel.account,
ugyfel.line,
naplo.ido
naplo.leiras
)
WHERE darab1 IS NOT NULL OR darab2 IS NOT NULL -- azon sorok kiszűrése, amelyek egyik feltételnek sem tesznek eleget -
laracroft
aktív tag
-
pvt.peter
őstag
Sziasztok!
Adott az alábbi utasítás:
CREATE TABLE IF NOT EXISTS devices (
...,
registration_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
...
)A kérdésem:
ezek után ha beszúrok egy rekordot ebbe a táblába, úgy hogy a registration_date mezőhöz nem adok meg semmit, akkor tlképpen egy TIMESTAMP érték fog tárolódni DATETIME formátumban, nem?Tehát ezekután hiába állítanám át MySQL-ben az időzónát, nem változna a registration_date mező, ha jól értem.
[ Szerkesztve ]
Ez egy .50-es rombolópuska, elég szép visszarúgással.
-
spammer
veterán
Milyen storage engine-t érdemes használni egy kis oldalhoz? Tudom, kicsi az relatív, de nem lesznek több ezer vagy tízezer sorok valószínűleg. Olvastam, hogy a MyISAM jobb ilyenkor, de azt is olvastam, hogy az INNODB, előnyösebb több szempontból, pl. crash vagy más hiba esetén. Nincs tapasztalatom, alapból INNODB volt beállítva, azzal készült el pár tábla, de FULL TEXT -et akartam beállítani, és látom, hogy (még) nem támogatja az INNODB. Ez utóbbi nem életbevágóan fontos, mert most a LIKE módszerrel is működik a keresés, de a kérdés, hogy összességében és a jövőre való tekintettel maradjak-e az INNODB-nél?
A másik kérdés:
utf8_hungarian_ci van beállítva, de ha a php fájlban az adatbázis csatlakozás rész után nem írom be ezt:
$db->set_charset("utf8");
Akkor az ékezetes karakterek helyén kérdőjeleket rak ki. Az adatbázisnál, a tábláknál és az oszlopoknál is utf8_hungarian_ci van beállítva. Mi lehet a gond?
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
-
spammer
veterán
válasz Peter Kiss #1231 üzenetére
Köszi, akkor jó. Azt hittem, hogy ha az adatbázisban be van állítva a kódolás (meg a php head-jében), akkor nem kell pluszban beállítani.
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
spammer
veterán
SELECT queryben akarok "LIKE módszerrel" kiválasztani mezőneveket, például:
Pl. ilyen nevek:
color_blue
color_green
color_red
stb.query:
SELECT name, type,
(SELECT column_name
FROM information_schema.columns
WHERE table_name='colors'
AND column_name LIKE 'color_%')
FROM ..........Ezt kapom:
Subquery returns more than 1 rowHogyan kellene subquerybe beleírni vagy hogyan lehetne kiválasztani color_ előtaggal kezdődőket, anélkül, hogy kézzel beírnám (felsorolnám) őket?
[ Szerkesztve ]
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
-
Apollo17hu
őstag
válasz spammer #1233 üzenetére
Ha sima SQL lenne, akkor ennyi elég lenne:
SELECT column_name
FROM information_schema.columns
WHERE table_name='colors'
AND column_name LIKE 'color%'szerk.: Most nézem, hogy neked nemcsak a mezőnevek, hanem attribútumok is kellenének. Ha ezek az attribútumok benne vannak az information_schema.columns táblában, akkor elég felsorolnod őket, ha nem akkor a FROM után sorold fel az érintett táblákat, WHERE-ben pedig kösd össze őket.
[ Szerkesztve ]
-
spammer
veterán
Félreértjük egymást, vagy én értek félre valamit Az egész egy táblában van, egy táblának az oszlopai. Nincs másik tábla.
Ezt a kódot úgy találtam (stackoverflown asszem), és ha önmagában lefuttatom, működik is, de subqueryként nem jó.
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
bpx
őstag
válasz spammer #1236 üzenetére
na akkor tisztazzuk mit szeretnel
egy adott tablarol megtudni, hogy milyen "color_" kezdetu oszlopai vannak (es semmi adatot)?
ebben az esetben:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name='colors'
AND column_name LIKE 'color_%';(a _ karaktert szerintem escape-elni kell ha biztosra akarsz menni, mert a LIKE-ban az pontosan 1 darab akarmilyen karaktert jelenthet, tehat a fenti minta illik arra is pl., hogy "color1")
vagy pedig magat a lekerdezest szeretned eloallitani? tehat nem tudod elore, hogy a tablanak milyen color oszlopai vannak, de szeretned azoknak a tartalmat lekerdezni
ez esetben dinamikus SQL kell[ Szerkesztve ]
-
spammer
veterán
Lekérdezés, SELECT.
Alapból ugye így néz ki mondjuk:
SELECT name, type, color_blue, color_red, color_green, color_valami, color_mégvalami, color_satöbbi...
Tehát ennyi lenne a lényeg:
SELECT name, type, color_% -> valami ilyesmire gondoltam. Magyarul, ne kelljen kiírni minden color_ -sal kezdődő oszlop nevét.
Ha lehet ilyen és nem túl bonyolult. Ha igen, akkor nem fontos, beírom kézzel, csak ha van rá "shortcut", akkor mégis csak egyszerűbb
[ Szerkesztve ]
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
Sk8erPeter
nagyúr
-
bpx
őstag
-
nymarti
csendes tag
sziasztok!
nem nagyon vagyok még otthon a mysql-ben, nem sikerült kitalálnom, hogy ezt hogy kellene
van egy tabom, ahol szeretném, ha az egyes tabokon egy tábla egy adott mezője jelenjen meg.már az első esetnél próbálkoztam: tartalom=tábla, tab_tartalom_egy=mező neve
<?php
switch($_GET['tabNum']) {
case 1: echo $tartalom['tab_tartalom_egy']; break;
case 2: echo "tartalom2"; break;
case 3: echo "tartalom3"; break;
case 4: echo "tartalom4"; break;
case 5: echo "tartalom5"; break;
}
?>Előre is köszi a segítséget!
-
Brown ügynök
senior tag
Segítséget szeretnék kérni a következő lekérdezéshez:
SELECT *
FROM stock_product_history h
LEFT JOIN stock_intake i ON h.intake_id = i.id
AND i.available BETWEEN :from AND :to
LEFT JOIN stock_intake_item it ON it.intake_id = i.id
AND it.product_id = :productId
LEFT JOIN stock_reservation r ON r.id = h.reservation_id
AND r.completed BETWEEN :from AND :to
LEFT JOIN stock_reservation_item ri ON ri.reservation_id = r.id
AND ri.product_id = :productId
WHERE h.product_id = :productId
AND h.store_id = :storeId
GROUP BY ri.id, i.idAzt szeretném elérni, hogy az intake_item és a reservation_item táblából csak azokat csatolja, amelyek megfelelnek intake és a reservation táblánál felállított dátum (available, completed) követelményeknek. Ezzel a lekérdezéssel olyan intake_item sort is kapok ami kívül esik az available tartományán ( bár minden értéke 0 vagy null).
"hacsak nem jön a jó tündér break utasítás képében..."
-
Apollo17hu
őstag
válasz Brown ügynök #1246 üzenetére
A LEFT JOIN miatt van: a stok_intake tábla minden rekordja bekerül. Használj helyette INNER JOIN-t, ami a táblák metszetét adja eredményül.
-
Brown ügynök
senior tag
válasz Apollo17hu #1247 üzenetére
INNER-rel jó is lenne de akkor a reservation(_item) tábla sorait akkor nem kapcsolja hozzá.
"hacsak nem jön a jó tündér break utasítás képében..."
-
Apollo17hu
őstag
válasz Brown ügynök #1248 üzenetére
Akkor a stock_product_history táblában nincs olyan rekord, ahol az intake_id beköti a stock_intake, a reservation_id pedig a stock_reservation táblát.
[ Szerkesztve ]
-
Brown ügynök
senior tag
válasz Apollo17hu #1249 üzenetére
Valóban. Jelenleg úgy van megoldva, hogy egy sorban vagy az intake_id vagy a reservation_id mező van kitöltve a stock_product_history táblában. Megnéztem, ha egy oszlopba írom őket egy másikba meg a típust adom meg és úgy kérdezem le, akkor is ugyanaz lesz az eredmény (gondolom az előző ok miatt). Igazából egy cikktörténetet szeretnék lekérdezni az intake(_item) és a reservation(_item) táblák csatolásával. Hogy alakítsam át a lekérdezést vagy a stock_product_history táblát, hogy úgy működjön, ahogy szeretném? Meg lehetne ezt oldani stock_product_history tábla nélkül is?
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
Új hozzászólás Aktív témák
- Telekom mobilszolgáltatások
- Kínai, és egyéb olcsó órák topikja
- Politika
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Autós topik
- Milyen alaplapot vegyek?
- Háromféle processzor is része lesz a Core 200 sorozatnak
- Futás, futópályák
- Okos Otthon / Smart Home
- További aktív témák...