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

Něco navíc v zeleném?
A proč ne...

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: lzauuml
[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
misa Misa Záviďte mi - máte proč :o) 30.11.2022 16:58  1504
puschpull [1503]: zatímco přechod u PHP může bolet (mění tam různě některé funkce, parametry funkcí, tu něco vyhodí, tu něco přidají), u MySQL bych problémy nečekal. Pořád musí podporovat standardní SQL a být v tom zpětně kompatibilní, tj. před přechodem vyexportovat kompletní DB do souboru by mělo bohatě stačit. Hostingy přechod na novější SQL server dělají většinou automaticky, transparentně, že si uživatel ani nevšimne. Já snad ani nepotkal hosting, kde bych si verzi MySQL mohl nějak měnit.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 30.11.2022 16: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 14: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 20:23  1501
pepak [1500]: A jo, já jsem to bral tak, že chce řádky jméno - datum.
pepak pepak - Pepak.net 19.10.2017 19: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 11: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 07: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 06: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 18.10.2017 23: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 08:42  1495
tak napravit se to da jednim sql na tabulku, ne?
pepak pepak - Pepak.net 8.7.2016 06: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 05: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 20: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 20: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 20: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

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

(c) 2001-2011 Lopuch.cz   
Kontakt