Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
#1 · Zasláno: 2. 4. 2014, 09:55:30
Potřebuji vložit data z jedné tabulky do druhé.
Jenže pokud to použiji takto, nebere to jako sloupec ale jako string. Těch jazyků je 10, chtěl jsem si napsat proceduru a procpat to přes mysql proměnné. Neví někdo zápis? SET @langName = 'cz'; // když to změním na cz tak to zařve parse error SET @langId = 1; // tabulka temp_dictionary ma strukturu id | cz | en | de ... atd INSERT INTO front_dictionary_lang (front_dictionary_id, language_id, translate) SELECT id, @langId, @langName FROM temp_dictionary WHERE @langName != '';, |
||
Tori Profil |
#2 · Zasláno: 2. 4. 2014, 10:35:04
Kcko:
Pokud byste věděl předem, které jazyky v tabulce jsou, resp. které chcete importovat, dá se použít takováhle krkolomnost: INSERT INTO novePreklady (id, lang, text) SELECT p.id, column_name as lang, ELT(FIELD(column_name, 'cz', 'en'), p.cz, p.en) as text FROM test.preklady p CROSS JOIN ( SELECT column_name FROM information_schema.COLUMNS WHERE table_schema = 'test' AND table_name = 'preklady' AND column_name in ('cz', 'en') ) meta |
||
Kajman Profil |
#3 · Zasláno: 2. 4. 2014, 10:53:35
Můžeš si sestavit dotaz a ten spustit.
http://stackoverflow.com/questions/4428761/mysql-field-name-from-variable |
||
Kcko Profil |
Tori:
Díky, ale je to fakt krkolomnost. (Chtěl jsem to jako rychlý fix, normálně bych si napsal servisu do Nette a pustil to v PHPku, takhle jsem holt jen přepisoval SQL na 2 místech .. a proto jsem si řekl, že to ještě zjednodušším přes proměnnou a budu to přepisovat na 1 místě). Kajman: Podívám se, ale taky to není uplně to co jsem chtěl ;-)) , myslel jsem to tak, že použiji na proměnnou nějakou funkci, něbo ji nějak "oescapuji" abych databázi řekl, že chci hodnotu z toho daného sloupce a ne jako string. |
||
Časová prodleva: 10 let
|
0