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

Já Vánoce juchuchu
oslavím na Lopuchu!

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: mkdtobf
[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
pepak pepak - Pepak.net 14.7.2009 10:51  964
To záleží na tom, jestli kódování v hlavičce tabulky (sloupečku) odpovídfá skutečně použitému kódování. Pokud ano, je to poměrně jednoduché a přímočaré (stačí dát ALTER TABLE a sloupečku změnit CHARACTER SET), pokud ne, je to poměrně složité a nepřímočaré (napřed se musí sloupečku změnit typ na BLOB nebo BINARY (VAR)CHAR/MEMO/atd., pak se sloupečku změní typ zpátky s tím, že se nastaví CHARACTER SET na to, co je skutečně uloženo v datech, a teprve potom jde změnit CHARACTER SET podle té jednoduché varianty). V každém případě se to musí dělat samostatně pro každou tabulku a každý sloupeček.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 14.7.2009 10:19  963
zdravím

prosím pěkně, jakým příkazem lze překovertovat všechny sloupce všech tabulek za zadané databáze (MySQL) z kodování
latin1_swedish_ci
do
utf8_general_ci

?

Lze to nějak jednoduše, nebo se musí každá tabulka a každý sloupec samostatně
(v tabulce jsou již data, ale anglická a ta by neměla ta změna kodování poničit ...)
straka82 Straka82 11.7.2009 10:58  962
Aha, funguje, diky
huh huh 10.7.2009 22:08  961
Připojte za porovnávání: COLLATE utf8_general_ci
Příklad:
select
'áčďéěí¾ňóřšťúůýžÁČĎÉĚͼŇÓŘŠÚŮÝŽ' like
'acdeeilnorstuuyzacdeeilnorstuuyz'
collate utf8_general_ci
straka82 Straka82 10.7.2009 21:16  960
DotazExistuje v mysql funkce, ktera dela uplne preste to samy, co funkce TRANSLATE v postgresu? Jestli ne, jak mam postupovat, kdyz chci vyhledat data, ale aby to nebylo zavisle na diakritice?
straka82 Straka82 1.7.2009 10:06  958
Rozhodl jsem se teda, ze do te tabulky pridam jeste jeden sloupec, kde se budou nascitavat body.
etdirloth EtDirloth 30.6.2009 18:54  955
huh [954]: pekne vymyslene, len tam mas dva preklepy:
- v prvom subselecte ti chyba podmienka jmeno = 'Petr'
- order by musi byt podla datum ASC

Zaujima ma: je niekde v specifikacii, ze to bude fungovat? Tzn. ze sa bude podmienka/subselect vyhodnocovat riadok-po-riadku prave v tom poradi, v akom zadas order-by vonkajsieho selectu?
huh huh 29.6.2009 13:30  954
Možná něco jako
select datum
from body vnejsi
where jmeno = 'Petr' and
(select sum(pocet) from body vnitrni where vnitrni.datum <= vnejsi.datum) >= 5
order by (select sum(pocet) from body vnitrni where vnitrni.datum <= vnejsi.datum)
limit 1
ale jsem teď nevyspalej, tak za nic neručím
bredy 29.6.2009 13:05  953
Šlo by to udělat pomocí vnořeného dotazu, že by pro každý řádek vnořený dotaz spočítal součet a pak by vracel záznamy tam kde by součet byl vyšší než zadané číslo a s LIMIT 1 bys dosáhl kýženého výsledku.

Ale doufejme, že těch záznamů není hodně. Jinak je to slušný DOS útok
pepak pepak - Pepak.net 29.6.2009 11:58  952
Nijak. Na to jednoduchý dotaz neexistuje. Můžeš si na to napsat uloženou proceduru, nebo si pomocí triggerů udržovat "celkem dosažený počet bodů k tomuto datu".
straka82 Straka82 29.6.2009 11:53  951
DotazDejme tomu, ze mam tabulku
datum | jmeno | pocet bodu
--------------------------
1.1. | Petr | 0
2.1. | Petr | 3
2.1. | Jan | 2
3.1. | Petr | 1
4.1. | Petr | 2
5.1. | Petr | 4

Jak jednoduchym SQL dotazem zjistim, ktereho dne dosahl petr pateho bodu? V tomto pripade by vysledek mel byt 4.1.

Diky
themajkl themajkl All those moments will be lost in time - like tears in rain. 12.6.2009 14:45  950
Jo, už vyřešeno, dík.
huh huh 12.6.2009 13:50  949
Pokud chápu, co máš na mysli, tak ty dva COUNTy nahraď SUMy.
themajkl themajkl All those moments will be lost in time - like tears in rain. 12.6.2009 13:16  948
DotazJak zapsat
select date(b.cas),`ipadr`,  count(time(b.cas) between "07:00:00" and "15:35:00"), count(time(b.cas) > "15:35:00")
  FROM hostnames a,`ipup` b 
       WHERE a.ip=b.ip
group by 1,2
order by 1,2

aby to vracelo dva různé počty? Snad je ze zápisu jasné, o co jde.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 7.6.2009 19:17  947
huh: naučil jsem se, a maximálně možně používám utf8

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

(c) 2001-2011 Lopuch.cz   
Kontakt