Autor | Zpráva | ||
---|---|---|---|
happy Profil |
Ahoj
jde v mysql vybrat sloupce které mají stejný začátek? mám db a vní text_cesky, text_rusky, text_japonsky a když dělám select a nechci dělat select * když potřebuji jen pár sloupců, jde udělat něco jako select text* ? pokud ne jak jinak vhodně vybrat jen sloupce začinající na text ? |
||
Kajman_ Profil * |
#2 · Zasláno: 6. 5. 2010, 16:04:02
Musíte je vyjmenovat. Jejich seznam se v mysql dá vyčíst díky
show columns nebo v novějších verzích dotazem na information_schema.COLUMNS |
||
__construct Profil |
#3 · Zasláno: 6. 5. 2010, 16:08:34
SHOW COLUMNS FROM `tabulka` LIKE 'text%'; |
||
Joker Profil |
#4 · Zasláno: 6. 5. 2010, 16:14:59
happy:
Jen poznamenám, že to dost zavání špatným návrhem databáze. Indicie: 1. Indexované názvy sloupců (text_cesky, text_rusky, … ~ text1, text2, …) 2. Samotný dotaz „Vybrat všechny sloupce, jejichž název začíná…“ je dost podezřelý (souvisí s 1.) 3. Pokud nejde o nástroj pro správu databáze, je dost divné nevědět ve chvíli výběru jaké sloupce vlastně potřebuji vybrat (jak se s nimi pak bude pracovat?!) |
||
happy Profil |
#5 · Zasláno: 6. 5. 2010, 16:26:34
__construct:
jj to je mi jasné, jenže nepotřebuji názvy sloupců ale obsah v těchto sloupcich. sloupce si nemám problém poskládat pomocí jazyků. šlo mi spíš o to jestli neexistuje to castnazvu*, což by mi ulehčilo práci Joker: zajímalo by mě, jaký způsob ukládání multijazyčných textů preferuješ ty? osobně mi připadá ukládat je jako sloupce jako nejlepší. mám pak něco jako text_cs | text_sk | text_ru. výhodu vidím hlavně vtom že je to v jedné tabulce => snadná a rychlá manipulace, vhodné pro vypsání v gridu. jedinou nevýhodou dle mého je že při přidání / ubrání jazyka se mění struktura tabulky. |
||
Kajman_ Profil * |
#6 · Zasláno: 6. 5. 2010, 16:57:48
|
||
happy Profil |
#7 · Zasláno: 6. 5. 2010, 17:05:28
Kajman:
já vycházel z podobného článku stejného autora http://php.vrana.cz/storing-multilingual-records-in-the-mysql-database.php z Translation directly in the data table. |
||
Joker Profil |
#8 · Zasláno: 6. 5. 2010, 17:28:01
happy:
„zajímalo by mě, jaký způsob ukládání multijazyčných textů preferuješ ty?“ Tady to vcelku jasně ukazuje na to, že "text" a "jazyk" by měly být sloupce nějaké tabulky. „výhodu vidím hlavně vtom že je to v jedné tabulce => snadná a rychlá manipulace“ Rychlá a snadná? Když budu předpokládat, že jazyky lze přidávat a odebírat, tak místo: - „Vyber řádek, kde id=X a jazyk=Y ze spojení tabulek podle id“ bude: - „sestav název sloupce kde by měl být text. Zjisti, jestli tabulka má daný sloupec. Pokud nemá, chyba. Jinak vyber daný sloupec z tabulky, kde id=X“ Věci jako vypsat všechny jazyky ve kterých je dokument k dispozici když ani nevíte kolik „jazykových“ sloupců v tabulce vlastně budou taky zábava. Zároveň pokud někde bude seznam jako "cs=čeština, en=english, …", bude nutné mít kód, který bude udržovat seznam a sloupce tabulky synchronizované a bude řešit situace, kde se povede aktualizace jednoho a nepovede aktualizace druhého. |
||
happy Profil |
#9 · Zasláno: 6. 5. 2010, 18:46:07
Joker:
jen pár věcí mam tabulku s jazyky - id code name a pak u multijazyčných sloupce textcs textsk ...atd výběr z jednoho jazyku je tak, že do dotazu se dosadi požadovany jazyk a dle mého už to jednodušší být nemůže (neřeším zda sloupec existuje - to je zaležitost vytvoření nového jazyka). pokud chci sloupce ve všech jazycich tak je nutne dotaz poskladat pomoci foreach language pridej do select sloupecLanguage - naštěstí člověk často nepotřebuje všechny jazykové verze (zatim jsem to potreboval jen v administraci). jazykovych sloupcu je tolik kolik je jazyku cs=čeština je právě v té tabulce s jazyky dle mého hlavní problematická část je přidávání /mazání a update jazyků. jinak mi dotazy přijou velmi jednoduché dříve jsem také měl jednu tabulku na data (id,time,price...) a kni tabulku data_translate (id,id_data, language, text....) dotazy byly o něco složitější, přidávání /mazání a update jazyků zase mnohem jednodušší. nicméně problém jsem měl s výpisem do grid struktur kdy jsem potřeboval dat vedle sebe do grid sloupce třeba time /price / textcs / textru kdy jazyková data jsem měl na různých řádcích a převod do sloupců byl dle mého dosti problematický. ale jinak každému určitě vyhovuje něco jiného. idelání návrh dle mého pro sql databáze být nemůže. jinak jsem zapomněl poděkovat Kajman za odpověd na mou otázku "Musíte je vyjmenovat" takže Díky. |
||
Časová prodleva: 14 let
|
0