MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.
Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.
Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
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 id
Misto < 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: