MySQL DACĂ NU EXISTĂ/IFNULL SELECT altă coloană

Vreau să verific, dacă există o coloană (mysql). Dacă nu, MySQL ar trebui să ia valoarea dintr-o coloană care există cu siguranță. Interogarea mea arată astfel, dar nu funcționează:

IF NOT EXISTS (SELECT `en` FROM `HP_strings` 
               WHERE `name`='copyright' AND `group`='system')
THEN
    SELECT `default` FROM `HP_strings` 
    WHERE `name`='copyright' AND `group`='system';

Am încercat și eu

IFNULL((SELECT `en` FROM `HP_strings` 
        WHERE `name`='copyright' AND `group`='system'),
(SELECT `default` FROM `HP_strings` 
 WHERE `name`='copyright' AND `group`='system'));

Același rezultat (eroare)

EDIT: 'en' NU EXISTĂ. Vreau să știu dacă există.

0
@ user1435792, vrei să spui că nu există nici o coloană numită en și chiar vrei să verifici dacă orice coloană en există în tabelul tău?
adăugat autor Rahul, sursa
@ user1435792, mi-am editat postarea; vedeți dacă acest lucru vă ajută deloc.
adăugat autor Rahul, sursa
dacă EXISTĂ. Nu există o coloană "en".
adăugat autor user1435792, sursa
@Rahul da, asta e drept.
adăugat autor user1435792, sursa
Clarificare necesară: chiar doriți să verificați dacă coloana există sau dacă valoarea coloanei este NULL ?
adăugat autor bfavaretto, sursa
Nu face asta. Cred că nici nu este posibil.
adăugat autor bfavaretto, sursa

2 răspunsuri

Incearca asta:

SELECT `default` FROM `HP_strings` where isnull(`en`) and `name`='copyright' 
AND `group`='system'

EDIT: (Bazat pe comentariul dvs.)

Puteți verifica dacă o coloană există sau nu în tabelul dvs. din schema DB ca în cele de mai jos ... dar nu cred că puteți manipula în interogarea dvs. așa cum intenționați să faceți.

SELECT *  FROM information_schema.COLUMNS  
WHERE TABLE_SCHEMA = 'db_name'  
AND TABLE_NAME = 'table_name'  
AND COLUMN_NAME = 'column_name' 
0
adăugat
@ user1435792, au fost oferite soluții bazate pe date postare. Ca pe postul dvs. en trebuie să fie o coloană. Deci, ce en de fapt?
adăugat autor Rahul, sursa
@ user1435792, ar trebui să clarificați că în postare. Vedeți editarea mea ... dacă te ajută.
adăugat autor Rahul, sursa
# 1054 - Coloană necunoscută "en" în "unde clauza"
adăugat autor user1435792, sursa
este o coloană. Dar nu există. Vreau să verific dacă această coloană există. Deoarece cineva ar putea face o coloană "en" și apoi ar trebui folosită valoarea acestei coloane.
adăugat autor user1435792, sursa

Pentru a inspecta o structură de tabelă în MySQL, trebuie să interogați baza de date information_schema . Pentru a face acest lucru, utilizatorul db trebuie să aibă acces la baza de date a sistemului (pe care un utilizator obișnuit nu ar trebui să o aibă).

Nu știu ce încercați să faceți, dar ar trebui probabil să vă regândiți structura bazei de date, astfel încât nu este nevoie să verificați dacă există o coloană într-un tabel.

0
adăugat
MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.