Si je sélectionne un AS b et b n'est pas une colonne de la table, la requête créerait-elle la colonne "virtuelle"?
en fait, j'ai besoin d'incorporer une colonne virtuelle dans la requête et de traiter certaines informations dans la requête afin de pouvoir les utiliser avec chaque élément plus tard.
quelque chose comme
SELECT id, email, IF(actived = 1, 'enabled', 'disabled') AS account_status
FROM users
cela vous permet d'effectuer des opérations et de l'afficher sous forme de colonnes.
MODIFIER:
vous pouvez également utiliser des jointures et afficher des opérations sous forme de colonnes:
SELECT u.id, e.email, IF(c.id IS NULL, 'no selected', c.name) as country
FROM users u LEFT JOIN countries c ON u.country_id = c.id
Essayez celui-ci si vous souhaitez créer une colonne virtuelle "age" dans une instruction select:
select brand, name, "10" as age from cars...
Vous pouvez ajouter des colonnes virtuelles comme
SELECT '1' as temp
Mais si vous essayez de mettre la condition where à une colonne générée en plus, cela ne fonctionnera pas et affichera un message d'erreur car la colonne n'existe pas.
Nous pouvons résoudre ce problème en renvoyant le résultat sql sous forme de table.ie,
SELECT tb.* from (SELECT 1 as temp) as tb WHERE tb.temp = 1
SELECT ne récupère que les données de la base de données, il ne modifie pas la table elle-même.
Si vous écrivez
SELECT a AS b FROM x
"b" est juste un nom d'alias dans la requête. Il ne crée pas de colonne supplémentaire. Votre résultat dans l'exemple ne contiendrait qu'une seule colonne nommée "b". Mais la colonne du tableau resterait "a". "b" est juste un autre nom.
Je ne comprends pas vraiment ce que vous entendez par "donc je peux l'utiliser avec chaque élément plus tard". Voulez-vous dire plus tard dans l'instruction select ou plus tard dans votre candidature. Vous pourriez peut-être fournir un exemple de code.