Alias per i valori in un campo di una tabella Database MySql

myprobsql

Nuovo Utente
24 Mar 2017
4
0
1
29
Ciao a tutti , vi espongo il mio problema.
Premesso che questo riguarda sia codice PHP che query MySql, se sono nella sezione sbagliata, vi prego di moderare questo post.
Il mio quesito è :
Ho una tabella MySql che si chiama [USER]
All'interno ho questi campi (NAME,STATUS,DESIGNATION)

| NAME | STATUS | DESIGNATION |
-------------------------------
| ABCD | 0 | MD |
| DCFG | 1 | CEO |
| AHSG | 1 | DD |

È possibile eseguire una query MySQL in PHP per ottenere un output simile a questo?

| NAME | STATUS | DESIGNATION |
-------------------------------------------
| ABCD | No | Managing Director |
| DCFG | YES | Chief Executive Officer |
| AHSG | YES | Deputy Director |

Dovrei inserire questa query in un file php.
Attualmente sto lavorando con XCRUD.

$xcrud->query('SELECT status FROM users CASE status WHEN 0 THEN 'N0' WHEN 1 THEN 'YES'
END AS Status, CASE Designation WHEN 'MD' THEN 'Managing Director' WHEN 'CEO' THEN 'Chief Executive Officer' WHEN 'DD' THEN 'Deputy Director' END AS Designation ;

Ma questo non funziona, in cosa sto sbagliando?
Grazie a tutti
 

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
credo ci sia
un errore di sintassi php dovuto agli apici, dovresti usare virgolette e apici,
poi sempre errore di sintassi della query che dovrebbe essere
PHP:
$xcrud->query("
SELECT name,
  CASE status
    WHEN 0 THEN 'N0'
    WHEN 1 THEN 'YES'
  END AS Status,
  CASE Designation
    WHEN 'MD'  THEN 'Managing Director'
    WHEN 'CEO' THEN 'Chief Executive Officer'
    WHEN 'DD'  THEN 'Deputy Director'
  END AS Designation
  FROM users");
come suggerimento, potresti creare una tabella che contiene 2 campi,
codice (0,1,md,ceo,dd.....)
descrizione (valore da assegnare al codice)
in questo modo non avrai una query lunghissima per le tipologie e potrai facilmente gestire le aggiunte/variazioni sulla tabella senza intervenire sul codice php o altro
la query con la tabella, potrebbe essere
PHP:
SELECT
u.name,
ts.descrizione AS status,
td.descrizione AS designation
FROM users u
LEFT JOIN TabDescr ts ON u.status = ts.codice
LEFT JOIN TabDescr td ON u.designation = td.codice
che potresti scrivere anche
PHP:
SELECT
u.name,
(select descrizione FROM TabDescr where codice = u.status) status,
(select descrizione FROM TabDescr where codice = u.designation) designation
FROM users u
 
Ultima modifica: