Počítačová hra Factorio (Wikipedie) nově běží nativně na ARM64 Linuxu a headsetu Steam Frame.
Fugleramme, v překladu 'ptačí rámeček', je open-source projekt postavený na Raspberry Pi, který pomocí lokální umělé inteligence BirdNET-Go rozpoznává ptačí druhy podle jejich zpěvu a na displeji následně zobrazuje koláž tvořenou odpovídajícími ilustracemi. Databáze obsahuje přes 800 ručně vybraných historických přírodovědných ilustrací více než 400 druhů ptáků.
… více »Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 18.0. Přidáno bylo 13 007 nových znaků. Celkově jich je 172 808. Přibylo 9 nových Emoji.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 169 (pdf).
Byla vydána nová verze 6.4 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.
Německý kancléř Friedrich Merz (CDU) se během debaty s finalisty studentské vědecké soutěže Jugend forscht vyjádřil pro konec anonymity na internetu a vyslovil názor, že pro uživatele Internetu by měla platit podobná právní odpovědnost jako pro novináře tradičních médií. Na dotaz studenta, jak by se tedy povinnost uvádět pravé jméno slučovala s prací investigativních novinářů nebo ochranou jejich zdrojů, Merz neodpověděl, ve své
… více »Společnost Fujitsu představila FUJITSU-MONAKA CPU a Fujitsu MONAKA Server. Navrženo, vyvinuto a vyrobeno v Japonsku. Pro suverénní AI infrastrukturu.
Předprodej v květnu představených notebooků Googlebook, nástupců notebooků Chromebook, bude spuštěn v pondělí 21. září.
Byla vydána betaverze Fedora Linuxu 45 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 20. října. S konzolí kmscon místo fbcon. Současně byla vydána betaverze Fedora Linux Asahi Remixu 45. S podporou čipů M3.
Po půl roce vývoje od vydání verze 50 bylo vydáno GNOME 51 s kódovým názvem "A Coruña" (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Videopředstavení na PeerTube a YouTube.
. Co třeba napsat ty dotazy co provádíš?
.
select * from relace where typ_predka='P' and predek=42802 select * from polozka where cislo in (42803,42831) order by cislo select * from zaznam where cislo in (57550) order by cislo select soucet from citac where typ like 'P' and cislo=42802
Ctverice zminenych dotazu. Posledni tri by sly celkem snadno aplikovat hromadne na vsechny clanky. Proste by tam tech cisilek trosku pribudlo 
Ale ten prvni je v obecnem pripade nejhorsi. Zde ale vim, ze se bude menit jen cislo predka. Jenze stejne radeji hledam obecne reseni. Takze kdyz mam treba dvojice (A,1), (A,2), (B,3), (C,1), IMHO by resenim bylo:
select * from relace where typ_predka='A' and predek in (1,2) select * from relace where typ_predka='B' and predek in (3) select * from relace where typ_predka='C' and predek in (1)
A pak rucne projit vracene radky a podle sloupecku predek rozhazet udaje ke spravnym objektum.
select * from relace where (typ_predka='A' and predek in (1,2)) or (typ_predka='B' and predek in (3)) or (typ_predka='C' and predek in (1))Ale jinak se v tom zatím moc nevyznám
Je to tak, že v tabulce polozka je honorář a hlavička diskuze a v zaznam je obsah článku? Šlo by sem ještě dát create table pro polozka a zaznam?
Předpokládám, že ta čísla (42803,42831) a (57550) jsou z relace, a které je nebo je polozka a zaznam se pozna podle typ_potomka?
Easy.
Ta cisla jsou potomci v tabulce relace, tabulku urcuje sloupecek typ_potomka. Napriklad pro polozku je to 'P.
Deleni obsahu clanku (zaznam) od hlavicky (polozka) je umyslne, mela to byt optimalizace, aby se dlouhy obsah nenacital pri listovani rubrik. Jak jsem vcera zjistil, tak se to nepovedlo
Ale pujde to zoptimalizovat, kdyz uz o tom vim.
Ted frcim na obed ..
Nestačilo by nepoužívat 'select *'? Navíc u databází bývá zvykem, že v záznamu nejsou celé BLOBy, ale jen jakési handly na ně, ale nevím, jestli to tak dělá i MySQL.
Bez zdrojáků a struktury DB se to těžko odhaduje, ale zkusím to popsat abstraktně
Tož:
SELECT * FROM relace AS Rserial, relace AS Rclanky WHERE Rserial.url = ? AND Rserial.cislo = Rclanky.cislo AND Rclanky.typ = 'P' ORDER BY Rclanky.cisloTím bych měl získat čísla všech článků v seriálu. K nim potřebuji přidat obsah (zaznam) a třeba dvě položky z polozka – dejme tomu autor a honorar. Upravím tedy SELECT:
SELECT * FROM relace AS Rserial, relace AS Rclanky, zaznam, polozka AS Pautor, polozka AS Phonorar WHERE Rserial.url = ? AND Rserial.cislo = Rclanky.cislo AND Rclanky.typ = 'P' AND zaznam.cislo = Rclanky.cislo AND Pautor.cislo = Rclanky.cislo AND Phonorar.cislo = Rclanky.cislo ORDER BY Rclanky.cisloStejně by se do SELECTu přidal i počet položek. Na spojování tabulek jsou databáze optimalizované, pokud jsou na příslušných sloupečcích indexy, mělo by to být OK. Výsledkem SELECTu by měl být 1 řádek = 1 článek. Místo
SELECT * si samozřejmě vyberu jen ty sloupečky, které potřebuji.
Doufám, že tu nepíšu úplné nesmysly a půjde to na strukturu databáze napasovat
SELECT * FROM relace AS Rserial, relace AS Rclanky, zaznam, polozka AS Pautor, polozka AS Phonorar, relace AS Rautor, relace AS Rhonorar WHERE Rserial.url = ? AND Rserial.cislo = Rclanky.cislo AND Rclanky.typ = 'P' AND zaznam.cislo = Rclanky.cislo AND Pautor.cislo = Rautor.cislo AND Rautor.predek = Rclanky.cislo AND Rautor.typ_predka = 'P' AND Phonorar.cislo = Rhonorar.cislo AND Rhonorar.predek = Rclanky.cislo AND Rhonorar.typ_predka = 'P' ORDER BY Rclanky.cislo
CREATE TABLE polozka ( cislo INT AUTO_INCREMENT PRIMARY KEY, -- jednoznacny identifikator typ SMALLINT, -- typ polozky (diskuse, faq, ..) podtyp VARCHAR(30) NULL, -- podtyp data TEXT NOT NULL, -- XML pridal INT(6) NOT NULL, -- odkaz na uzivatele vytvoreno DATETIME, -- cas vytvoreni zmeneno TIMESTAMP NOT NULL -- cas posledni zmeny ); CREATE TABLE zaznam ( cislo INT AUTO_INCREMENT PRIMARY KEY, -- jednoznacny identifikator typ SMALLINT, -- typ zaznamu (HW, SW, clanek ..) podtyp VARCHAR(30) NULL, -- podtyp data LONGTEXT NOT NULL, -- XML pridal INT(6) NOT NULL, -- odkaz na uzivatele vytvoreno DATETIME, -- cas vytvoreni zmeneno TIMESTAMP NOT NULL -- cas posledni zmeny );
ALTER TABLE relace ADD INDEX in_potomek (typ_potomka,potomek); ALTER TABLE relace ADD INDEX in_predek (typ_predka,predek); ALTER TABLE relace ADD INDEX in_predchozi (predchozi); ALTER TABLE relace ADD INDEX in_url (url);
Indexy jsem delal podle EXPLAIN, ale spise jen amatersky.
Pokud jde o prvni dotaz, mas pravdu, take jsem si ted vsimnul, ze ten LIKE je zbytecny, kdyz znam presnou hdonotu. Ale bude to poznat na vykonnosti, kdyz ma sloupecek vzdy jediny znak a ten strcim do vyrazu? Pak snad nebude rozdil mezi porovnanim a LIKE, ne?
.
A vůbec co vnořené dotazy? Připadá mi, že by se tam daly použít a pak ti dotazů pár ubyde
.
Chápu to dobře, že každej jednotlivej příspěvek v diskusi získáváš jedním SQL dotazem? V případě, že ano, nebylo by mnohem efektivnější získat všechny příspěvky z jednoho vlákna pomocí 1 dotazu (například podle UID prvního-kořenového záznamu) a ty pak srávně "pospojovat" podle nějakého identifikátoru udávající pozici ve stromu příspěvků u jednotlivých příspěvků až v aplikaci?
Tiskni
Sdílej: