IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:25.3.2014 11:33

Ahoj, z jednoho dotazu dostanu několik řádků s jedním sloupcem obsahující čas.
např.:

+---------+
|   čas   |
+---------+
|  14:00  |
+---------+
|  15:00  |
+---------+
|  16:00  |
+---------+
|  17:00  |
+---------+
|  18:00  |
+---------+
|  19:00  |
+---------+

Jaký je sql příkaz, abych dostal něco takového

+---------+---------+
|  čas 1  |  čas 2  |
+---------+---------+
|  14:00  |  15:00  |
+---------+---------+
|  15:00  |  16:00  |
+---------+---------+
|  16:00  |  17:00  |
+---------+---------+
|  17:00  |  18:00  |
+---------+---------+
|  18:00  |  19:00  |
+---------+---------+

nebo to budu muset udělat až v php?

Odpovědět
25.3.2014 11:33
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:25.3.2014 12:00

Asi bych to dělal až v PHP, zbytečně budeš tahat ta samá data 2x.

Nahoru Odpovědět
25.3.2014 12:00
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:25.3.2014 12:10

no ty samé data myslím nebudu tahat 2x. myslel jsem, že to bude složený dotaz, něco takové:

SELECT čas1, čas2 FROM (SELECT čas ...) ...

ale asi je to zbytečně složité pro mysql a nechám to na php

Nahoru Odpovědět
25.3.2014 12:10
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:25.3.2014 12:22

Z db bys do PHP přenášel každý čas 2x. Nad tím dotazem sem přemýšlel a nenapadlo mě žádné řešení.

Nahoru Odpovědět
25.3.2014 12:22
New kid back on the block with a R.I.P
Avatar
Michal Haňáček:25.3.2014 12:34

Ahoj, nevím jak vypadá tvoje databáze (resp. tahle konkrétní tabulka), ale když už ten dotaz skládat na úrovni databáze, tak bych to řešil asi takhle:

select CAS CAS1, (select CAS from *** where ***) CAS2 from *** where ***;

Nějako mi ale není jasný jak to chceš omezovat (co bude za where), nebo jak spolu ty záznamy souvisí ...

Nahoru Odpovědět
25.3.2014 12:34
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
David Hynek:25.3.2014 12:44

ten druhý čas2 je vždy posunutý o 1 hodinu?

Jestli jo, tak to fakt nech až na PHP.

Nahoru Odpovědět
25.3.2014 12:44
Čím víc vím, tím víc věcí nevím.
Avatar
Paul
Člen
Avatar
Paul:25.3.2014 14:52

V mysql existuje funkce DATE_ADD, kterou by jsi zde mohl použít.
Vypadalo by to asi nějak takto:

SELECT cas1, DATE_ADD(cas1, INTERVAL 1 HOUR) FROM ... WHERE ...

Není to možná úplně přesně, ale tak nějak by to mohlo být.
Víc info najdeš tady:
http://www.abclinuxu.cz/…i-v-mysql-vi

 
Nahoru Odpovědět
25.3.2014 14:52
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:25.3.2014 15:42

V SQL by to šlo také napsat. Třeba:

SET @before_time = (SELECT `time` FROM `test` LIMIT 1);
SELECT
  @before_time as `time1`,
  (@before_time := time) as `time2`
FROM `test`
LIMIT 1,18446744073709551615
Editováno 25.3.2014 15:43
 
Nahoru Odpovědět
25.3.2014 15:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.