Je voudrais savoir si c'est possible par exemple j'ai une table sql avec les résultats suivants

+----+---------+--------+--------+
| ID |  Name   | Number | Active |
+----+---------+--------+--------+
|  1 | Jessica |     12 |      0 |
|  2 | Andrew  |     23 |      1 |
|  3 | Jason   |     53 |      0 |
+----+---------+--------+--------+

Et je voudrais changer le champ actif en 0 = No | 1 = Yes mais seulement dans les résultats, je ne veux pas changer la valeur de la ligne, est-il possible de faire une requête qui puisse le faire?

Eh bien, avec les réponses ci-dessous, j'ai réussi à le changer, mais maintenant comment puis-je faire écho à la valeur en php?

SELECT *, case when Active =0 then 'No' when Active =1 then 'Yes' end as Expr1,
FROM table

Devrait-il être comme: $isActive = $rows['Expr1']; NVM la ligne ci-dessus fonctionne.

0
Saleen.S 20 nov. 2018 à 20:17

3 réponses

Meilleure réponse

Utilisez simplement une instruction case pour traduire 1 = oui et 0 = Non comme ça

select ID 
      ,Name
      ,Number
      ,case when Active=0 then 'No'
            when Active=1 then 'Yes'
       end as active_y_n
 from table
2
George Joseph 20 nov. 2018 à 17:21

Cas d'utilisation quand

select Id,name,number,
case  Active when 0 then 'No'
    when 1 then 'Yes' end as active_status
    from t
0
Zaynul Abadin Tuhin 20 nov. 2018 à 17:21

Une manière particulièrement simple utiliserait elt():

select Id, name, number,
       elt(Active + 1, 'No', 'Yes') as as active_status
from t
0
Gordon Linoff 20 nov. 2018 à 18:13