Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Komu se nelení,
tomu se zelení.

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Database (mysql,...) [ŽP: neomezená] (kategorie Programování) moderuje melkor_unlimited.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: yxpypay
[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 30.11.2022 17:14  1503
DotazSnad to tu není úplně mrtvé.
Na hostingu řeším poslední dobou víc věcí
přechod na zabezpečený protokol (https / SSL)
postupný přechod na PHP 8.1
a nyní jsem narazil na věc, kde mi admin na Ebole (tam hostuji) navrhl přejít na vyšší verzi MySQL (zatím tam mám, tuším, 5.6)
Takže patrně přechod na verzi 8
!!
Což mám strach, ale proč to nezkusit.
Pro postupný vývoj různých subdomén na php 8.1 mám možnost si pro každou tuto subdoménu nastavit takovou verzi php, jakou potřebuji
U MySQL toto asi nepůjde...

Ptám se, jaké největší záludnosti asi budu řešit při přechodu databázoveho serveru na vyšší verzi?
Počítám, že všechny databáze, mám jich tam 20, si zazálohuji - vyexportuji s možností databáze CREATE a tabulky DROP+CREATE
používám Adminer
Adminer - Správa databáze v jednom PHP souboru

Databáze pak budu muset odstranit a až poběží nová verze db serveru tak je znovu vytvořit
Takže co mi radíte, aby to vše klaplo?
Děkuji
straka82 Straka82 20.10.2017 15:07  1502
Diky za rady, zkousel jsem to a nejrychlejsi je ta prvni verze s NOT EXISTS.
themajkl themajkl All those moments will be lost in time - like tears in rain. 19.10.2017 21:23  1501
pepak [1500]: A jo, já jsem to bral tak, že chce řádky jméno - datum.
pepak pepak - Pepak.net 19.10.2017 20:21  1500
TheMajkl: A sloupeček number???

Straka82: Dělá se to obecně technikou 1) vybrat nejvyšší datumy pro každého uživatele a 2) následně je použít pro výběr příslušných řádků. Takže něco jako:

SELECT a.*
FROM tabulka a
JOIN (SELECT b.name, MAX(b.date) AS date FROM tabulka b GROUP BY b.name) x ON a.name=x.name AND a.date=x.date

Různých variant je asi tisíc, jde to udělat bez subselectu jen pomocí agregačních funkcí, může být vhodné to udělat pomocí CTE, atd. Hrozně záleží na tom, v jaké databázi a k čemu to chceš použít. Některé databáze pro tohle mají mnohem efektivnější konstrukty, například. Některá použití také (může být vhodnější udělat si výběr pomocí uložené funkce, například).
themajkl themajkl All those moments will be lost in time - like tears in rain. 19.10.2017 12:39  1499
Ještě by to asi šlo nějak jako

select a.name, (select max(b.date) from TAB b where a.name=b.name) datum
from TAB a
group by 1

straka82 Straka82 19.10.2017 08:38  1498
To je zase to "not exists", ktere moc nedavam :D Diky!
themajkl themajkl All those moments will be lost in time - like tears in rain. 19.10.2017 07:15  1497
Straka82 [1496]:
V informixu nějak jako
select a.id,a.name,a.date
from TAB a
where not exists (select b.id from TAB b
where b.name=a.name
and b.date>a.date)
straka82 Straka82 19.10.2017 00:51  1496
Dalsi dotaz :D

Mam tuhle tabulku

id|name|number|date
1|peter|2|2017-09-18
2|peter|1|2017-10-03
3|james|4|2017-09-05
4|james|1|2017-10-10
5|james|0|2017-10-15
6|kate|4|2017-09-16
7|kate|2|2017-10-17

A pro kazdou osobu chci vypsat radek s nejaktualnejsim datem. Vysledek by byl tento:

2|peter|1|2017-10-03
5|james|0|2017-10-15
7|kate|2|2017-10-17

Jaky dotaz to udela? Neco takoveho:

SELECT id, name, number, date
FROM table
GROUP BY id, name, number, date
HAVING date the latest

Diky moc
knedle knedle online - Krabice živých 8.7.2016 09:42  1495
tak napravit se to da jednim sql na tabulku, ne?
pepak pepak - Pepak.net 8.7.2016 07:01  1494
To vypadá na to, že migrační program nepočítá s tím, že rok 2000 byl přestupný.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 8.7.2016 06:50  1493
Tady skradlouho nikdo nebyl.

neporkal jste se nekdo s tim, ze pri migraci dat z mysql je najednou kazde datum o den starsi? z 7.7.2016 je 6.7.2016?
straka82 Straka82 8.2.2015 21:16  1492
H, tak to asi jede, dekuji pekne ")
themajkl themajkl All those moments will be lost in time - like tears in rain. 8.2.2015 21:10  1491
Z hlavy
select a.*
  from pocty a
    where not exists (select b.cena from pocty b
                        where a.id!=b.id
                              and b.pocet_lidi=a.pocet_lidi
                              and b.cena<a.cena)

?
straka82 Straka82 8.2.2015 21:01  1490
Mam tabulku "pocty":

id|pocet_lidi|cena|misto
--------------
1|2|100|praha
2|2|120|usti
3|2|90|ostrava
4|3|150|brno
5|3|120|olomouc
6|4|200|pardubice
7|4|220|hradec

jakym dotazem vyberu vsechny pocty_lidi s nejmensi cenou? tedy vysledek aby byl:

3|2|90|ostrava
5|3|120|olomouc
6|4|200|pardubice

? Zkousel jsem vselijake slozene, vnorene dotazy, having (min) atd, uz mi z toho jde hlava kolem :) Diky moc
knedle knedle online - Krabice živých 30.3.2014 21:30  1489
King [1488]: vim, ze to reseni kulha na obe nohy, ale v ramci toho jak si to predstavuju (celou funkčnost) je to (pro mne) nejvyhodnejsi

postgres, json field - zajimave, neznal jsem, budu o tom premyslet

nicmene uz to mam hotovo, takže okamzity přechod nehrozi - ted budu ladit a ladit sql

[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt