| Autor | Zpráva | ||
|---|---|---|---|
| Tori Profil |
#1 · Zasláno: 3. 9. 2010, 22:27:39
Zdravím,
mohli byste mi, prosím, poradit, jakým jednoduchým dotazem přepsat ve všech sloupcích (a řádkách) hodnotu NULL na prázdný řetězec? Anebo - bude-li jednodušší - jak vybrat všechny řádky, kde žádný z cca 15 sloupců (varchar nebo text) není nulový ani prázdný. Abych nemusela dávat 15 podmínek [sloupecX != '' AND sloupecX NOT NULL]. Pro další práci s touhle db by bylo jednodušší, kdyby se podařila ta první varianta, ale nic kloudného mě nenapadlo. Ještě upřesňuji, že názvy dotyčných sloupců jsou uloženy v jiné tabulce. Moc děkuji za radu. |
||
| Kajman_ Profil * |
#2 · Zasláno: 3. 9. 2010, 22:32:03
where ifnull(sloupecx,'')!='' |
||
| Kajman_ Profil * |
#3 · Zasláno: 3. 9. 2010, 22:33:15
A jinak je asi nejjednodušší nastavit sloupci defaultní hodnotu prázný řetězec a nastavit u něj not null.
|
||
| tiso Profil |
#4 · Zasláno: 3. 9. 2010, 22:33:39
Tori: otázka znie: prečo to robiť? V čom je prázdny reťazec lepšia hodnota ako NULL?
|
||
| Tori Profil |
#5 · Zasláno: 4. 9. 2010, 13:05:16
tiso:
Jde o zpracování dat z OS dotazníkové aplikace. Potřebovala jsem odlišný výstup (zpracování i zobrazení dat), takže jsem si dopsala modul do administrace. Rozdíl je v tom, že nezodpovězené otázky (volba "Bez odpovědi") se ukládají jako prázdný řetězec, ale když respondent nedokončí dotazník, uloží se u nezobrazených otázek NULL. Výchozí hodnota pro všechny odpovědi je NULL, což jsem zkusila změnit na prázdný řetězec, ale z nějakého důvodu se mi stejně při nedokončení dotazníku uložilo NULL. Takže je NULL zřejmě explicitně určeno. Kvůli případným updatům té dotazníkové aplikace se snažím do původního kódu zasahovat co nejméně, připadalo mi teda jednodušší prostě po ukončení průzkumu sjednotit data. (ve zpracování se nerozlišuje mezi dokončenými a nedokončenými, chybějící odpovědi se berou jako volba "bez odpovědi") Také mne zajímá, jestli je možné zjistit poddotazem názvy sloupců, např. něco jako SELECT * FROM odpovědi WHERE (SELECT jménaSloupců FROM tabulka2) !='' Mohla bych samozřejmě jedním dotazem zjistit jména sloupců, v PHP poskládat a dát do druhého dotazu, ale nešlo by to nějak elegantněji? |
||
| Tori Profil |
#6 · Zasláno: 4. 9. 2010, 14:55:54
Omlouvám se, nepřečetla jsem si manuál, že u typu TEXT nelze zadat výchozí hodnotu. S not null už se ukládá prázdný řetězec jak jsem chtěla. Díky za odpovědi.
|
||
|
Časová prodleva: 16 let
|
|||
0