Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.
VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.
Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).
Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.
Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.
Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
Byla vydána beta verze Linux Mintu 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.
Provozovatel internetové encyklopedie Wikipedie prohrál v Británii soudní spor týkající se některých částí nového zákona o on-line bezpečnosti. Soud ale varoval britského regulátora Ofcom i odpovědné ministerstvo před zaváděním přílišných omezení. Legislativa zpřísňuje požadavky na on-line platformy, ale zároveň čelí kritice za možné omezování svobody slova. Společnost Wikimedia Foundation, která je zodpovědná za fungování
… více »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/)
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: