Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
Google Chrome 153 byl prohlášen za stabilní. Nejnovější stabilní verze 153.0.8010.36 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 230 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.
Apple dnes představil (YouTube) iPhone Duo, iPhone 18 Pro, Watch Series 12, Watch Ultra 4 a AirPods 5.
Společnost System76 představila pracovní stanici Thelio Mira AI s předinstalovaným Pop!_OS s prostředím COSMIC nebo Ubuntu. Nakonfigurovat lze až s 16jádrovým CPU AMD Ryzen 9 9950X, 192 GB DDR5 RAM, dvěma GPU NVIDIA RTX Pro 6000 a 192 GB GPU pamětí.
DigitalOcean je sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let.
Na stránkách PostgreSQL bylo představeno LibreDB Studio. Jedná se o open-source self-hostované SQL IDE pro (nejenom) PostgreSQL v prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Byla vydána nová verze 12.0 media serveru Jellyfin (Wikipedie). Přehled novinek v poznámkách k vydání. Pro vyzkoušení je k dispozici Demo Server. Jellyfin je fork media serveru Emby, původně Media Browser.
V MikroTik RouterOS bylo nalezeno šest zranitelností společně pojmenovaných MikroTrick umožňujících útočníkovi, pokud má přístup k SSH, získat plnou kontrolu nad zařízením bez nutnosti autentizace. Ve verzích RouterOS 7.25beta3, 7.24.2, 7.23.4 a 6.49.21 je již opraveno.
id 1, platí od 8:00 do 10:00 id 2, platí od 1:00 do 21:00 id 3, platí od 22:00 do 3:00akým príkazom môžem vyselektovať všetky riadky, ktoré platia pre určitú hodinu? malo by mi to vrátiť pre 9:00hod id 1 a 2, pre povedzme 2:00 id 2 a 3. vďaka za nakopnutie vopred
Řešení dotazu:
IF(od < do, od < vstup AND do > vstup, od > vstup AND do < vstup)
vstup je požadovaná hodina.
select * from /tabulka/ where /dana_hodina/ BETWEEN /od/ AND /do/
SELECT * FROM /tabulka/ WHERE (/dana_hodina/ BETWEEN /od/ AND /do/) OR (/dana_hodina/ BETWEEN /do/ AND /od/)
, takže v tý druhý podmínce jsem udělal chybu.
Ta druhá podmínka musí bejt samo znegovaná, což už se ale bude blížit Filipovu řešení. Je ale
elegantnější řešení:
SELECT * FROM /tabulka/ WHERE (/dana_hodina/ < /od/ = /dana_hodina/ > /do/) = (/od/ <= /do/)a zaručeně funkční.
'SELECT * FROM __temp_oddo WHERE ('.$dana_hodina.'< `od` = '.$dana_hodina.' > `do`) = (`od` <= `do`)'ale teraz mi pri akomkoľvek čísle vyhadzuje posledný riadok databázy. :(
4 < 22 = true 4 > 3 = true takže ($dana_hodina < `od` = $dana_hodina > `do`) = true a to se nerovná (22 <= 4) = falseZkus si následující skript
create temporary table intervaly as select 2 as odd, 6 as ddo; create temporary table hodiny as select 1 as hodina; insert into hodiny values (2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12); SELECT hodina, FROM intervaly, hodiny WHERE ((hodina < odd) = (hodina > ddo)) = (odd<=ddo)a měň si tam údaj v tabulce intervaly - uvidíš, že to funguje. PS: Ad Tvoje přepsání: doufám, že $dana_hodina předtím alespoň konvertuješ na int.
"SELECT $dana_hodina, od, do , $dana_hodina < `od`, $dana_hodina < `do`, `od` <= `do`, ($dana_hodina.'< `od` = '.$dana_hodina.' > `do`) = (`od` <= `do`)' FROM __temp_oddo"Co ti z něj vyleze (např. vardumpni všechny řádky, jestli to neumíš dostat líp, ale spíš bych to vyzkoušel z konsole/nějakýho webovýho rozhraní).
ID od do 1 8 10 2 1 21 3 22 3v premennej $dana_hodina je v php skripte zadefinovaný integer povedzme 9. ak použijem
$result = mysql_query('SELECT * FROM __temp_oddo WHERE ('.$dana_hodina.'< `od` = '.$dana_hodina.' > `do`) = (`od` <= `do`)'); tak mi to vypíše id posledného riadku. niečo robím zle, ale čo?
echo 'SELECT * FROM __temp_oddo WHERE ('.$dana_hodina.'< `od` = '.$dana_hodina.' > `do`) = (`od` <= `do`)'
jestli se Ti ten dotaz složí dobře a zadruhý si vypsat mezivýsledky:
$result = mysql_query("SELECT
$dana_hodina, `od`, `do` , $dana_hodina < `od`, $dana_hodina < `do`, `od` <= `do`,
($dana_hodina '< `od` = $dana_hodina > `do`) = (`od` <= `do`)'
FROM __temp_oddo");
abychom zjistili, kde to počítá blbě. Anebo použij to filipovo řešení, dělal jsem testy a MySQL to volání funcke IF optimalizuje, takže je výsledek dokonce o fous rychlejší než mýho. Ale bejt Tebou bych chybu zjistil, jednak kvůli poučení, a jednak, abys vyloučil, že tam máš nějakou chybu jinde.
Array
(
[0] => 2
[2] => 10
[1] => 8
[od] => 8
[do] => 10
[3] => 1
[2 < `od`] => 1
[4] => 1
[2 < `do`] => 1
[5] => 1
[`od` <= `do`] => 1
[6] => 0
[(2 < `od` = 2 > `do`) = (`od` <= `do`)] => 0
)
inak, zdá sa, že mi tento príkaz funguje a vyhodnocuje správne:
$result = mysql_query("SELECT * FROM __temp_oddo WHERE IF(od <= do, od <= $dana_hodina AND do >= $dana_hodina, od <= $dana_hodina OR do >= $dana_hodina)");
tento príkaz
$result = mysql_query("SELECT * FROM __temp_oddo WHERE IF(od < do, od < $dana_hodina AND do > vstup, od > $dana_hodina AND do < $dana_hodina)");
mi hádže chybu E_WARNING: mysql_fetch_array() expects parameter 1 to be resource, boolean given
CREATE TABLE `aaa` ( `uid` INT(10) UNSIGNED NOT NULL, `od` DATETIME DEFAULT '0000-00-00 00:00:00', `do` DATETIME DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`uid`), KEY `Index_Od` (`od`), KEY `Index_Do` (`do`) ) ENGINE=MYISAM ;Vložíme zopár údajov:
INSERT INTO `aaa` VALUES (1, '1000-01-01 08:00:00', '1000-01-01 10:00:00'); INSERT INTO `aaa` VALUES (2, '1000-01-01 01:00:00', '1000-01-01 21:00:00'); INSERT INTO `aaa` VALUES (3, '1000-01-01 22:00:00', '1000-01-01 03:00:00'); INSERT INTO `aaa` VALUES (4, '1000-01-01 15:00:00', '1000-01-01 22:00:00'); INSERT INTO `aaa` VALUES (5, '1000-01-01 20:00:00', '1000-01-01 10:00:00'); INSERT INTO `aaa` VALUES (6, '1000-01-01 12:00:00', '1000-01-01 06:00:00');DATETIME má rozsah '1000-01-01 00:00:00' až '9999-12-31 23:59:59'. Nám stačí použiť pri vkladaní časov dátum '1000-01-01' rovnako pre `od` a `do`. Ak by bolo možné zabezpečiť pri menšom `do` ako je `od` použitie dátumu '1000-01-02', bolo by to asi ešte lepšie. Potom môže fungovať výber:
SELECT * FROM `aaa` WHERE '1000-01-01 09:00:00' BETWEEN `od` AND IF(`do` < `od`, DATE_ADD(`do`, INTERVAL 1 DAY), `do`) OR '1000-01-02 09:00:00' BETWEEN `od` AND IF(`do` < `od`, DATE_ADD(`do`, INTERVAL 1 DAY), `do`) ;
SELECT * FROM `aaa` WHERE '1000-01-01 09:00:00' BETWEEN `od` AND IF(`do` <= `od`, DATE_ADD(`do`, INTERVAL 1 DAY), `do`) OR '1000-01-02 09:00:00' BETWEEN `od` AND IF(`do` <= `od`, DATE_ADD(`do`, INTERVAL 1 DAY), `do`) ;
Tiskni
Sdílej: