Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
Zdravim,
potrebujem spravit taky selekct aby moje pozadovane ID bolo v strede. Priklad.
[id-2, id-1, id0, id1, id2]
kde ID0 je moje pozadovane. Da sa spravit taky selekt aby jednoducho zobral napr. 3 predchadzajuce 3 nasledujuce zaznamy?
Vdaka
no to je sice pekne, ale problem je ze tie ID nemusia ist za sebou. Co ak je tam [ 1, 5, 8, 10, 15, 50]. LIMITOM dakazem vytiahnut napr 3 zaznamy od 10 nahod, ale co tie nalavo?
Dobry den.
Potom muzete ten limit pouzit dvakrat + union.
Marek
WHERE id IN (SELECT id FROM tabulka WHERE id <= X LIMIT 3) OR id IN (SELECT id FROM tabulka WHERE id >= X LIMIT 3)
, což by bylo o něco hezčí.
Moje MySQL limit v poddotazu umí.
5.0.70. Jinak v dokumentaci píšou že limit se v subquery může normálně používat.
Malý omyl :) ano MySql 5 umí použít LIMIT clausuli v poddotazech, ale již ne ve spojením s IN :( - aspoň doufám, že se to nezměnilo :).
Lze:
SELECT * FROM t1 JOIN (SELECT id FROM t2 ORDER BY id LIMIT 0, 1000) AS t3 ON (t1.id = t3.id)
Ale NELZE:
SELECT * FROM t1 WHERE t1.id IN (SELECT id FROM t2 ORDER BY id LIMIT 0, 1000)
Je to tak. Dík za info.
Ale lze udělat kličku takto:
SELECT * FROM t1 WHERE t1.id IN (SELECT * FROM (SELECT id FROM t1 ORDER BY id LIMIT 0, 5) AS t2)
To bude fungovat prostě select s clausulí LIMIT se zapouzdří do selectu bez limitu,
ale pozor na výkonost při velkých tabulkách a hlavně velké hodnotě v LIMIT.
V Oracle (mozna i jinde) by slo pouzit analyticke funkce LAG a LEAD, ale snadno by to slo pouzit asi jen pro predem znamy rozsah okoli, napr. ty tri zaznamy na kazde strane. Obecne jak uz nekdo navrhoval unionem by to melo byt v pohode pro vetsinu tabulek, pro hodne velke bych to asi resil proceduralne (napr. PLSQL) na platformach kde je takova moznost. Primocare reseni pro predem znamy rozsah by slo pomoci not exists (prvni predchazejici je mensi nez master a neexistuje zadny mezi nimi atd.), coz muze na male tabulce rovnez fungovat, pokud tam bude vhodny index.
Takze spravim to zatial cez dva selekty:
SELECT * FROM tabulka WHERE id < X order by id desc LIMIT 3
SELECT * FROM tabulka WHERE id >= X LIMIT 4
A v PHP to spojim. Bohuzial moja verzia MySQL nepodporuje LIMIT v subquery.
Vdaka za pomoc.
Jano
Zkus radši toto i bez transakce: 15tka je hledane ID Je to takové transparentní a pokud se nejedná o součást nějakého velkého dotazu je to i rychlé (závorky jsou důležité!).
1. dotaz vezme před 3ks
2. dotaz vezme pozadovane ID
3. dotaze vezme po 3ks
(SELECT id FROM t1 WHERE id > 15 LIMIT 0, 3) UNION (SELECT id FROM t1 WHERE id = 15 LIMIT 0, 1) UNION (SELECT id FROM t1 WHERE id < 15 LIMIT 0, 3) ORDER BY id
Neřeší to neexistenci 3 před a 3 po záznamů - nebylo to v dotazu specifikováno.
dosáhnou výsledku lze více způsoby, jen je třeba se vyhnou 'IN' v MySql.
Příklad přes PHP je třeba uzavřít do transakce. což není problém pokud se jedná o InnoDB tabulky, na MyIsam bohužel toto není možné.
Ale pokud se jedná například o web kde jeden zapisuje a mnoho lidí čte a není zklamání dotazu kritické, tak není problém i s takto optimistickým přístupem :).
Nicméně výkonostně je UNION výrazně rychlejší — jen 1x se komunikuje s MySql serverem.
Malá oprava
... doplněno řazení a přehozeni prvního a posledniho selectu aby to odpovídalo popisu výše:
(SELECT id FROM t1 WHERE id < 15 ORDER BY id DESC LIMIT 0, 3) UNION (SELECT id FROM t1 WHERE id = 15 LIMIT 0, 1) UNION (SELECT id FROM t1 WHERE id > 15 ORDER BY id ASC LIMIT 0, 3) ORDER BY id
vdaka za rady :)
(SELECT id FROM t1 WHERE id <= 15 ORDER BY id DESC LIMIT 0, 4) UNION (SELECT id FROM t1 WHERE id > 15 ORDER BY id ASC LIMIT 0, 3) ORDER BY idMisto < tam jde dat <= a zredukovat to tak ze 3 poddotazu na 2. Pokud vim, ze ID existuje, tak bude vysledek stejny, jako u dotazu ze 3 casti. Pokud by ID neexistovalo, dostal bych 4 pred a 3 po.
Tiskni
Sdílej: