J'ai le tableau suivant avec les données suivantes :
id | Texte | Langue |
---|---|---|
1 | Texte allemand | Allemand |
2 | Texte anglais | Anglais |
Ce que je souhaite, c'est obtenir des résultats au format suivant :
german="deutscher text" english="english text"
Cela devrait signifier et non :
text="deutscher text" text="english text"
Nom de la clé/colonnetext
应该是来自language
Données
J'ai essayé la requête suivante mais cela ne fonctionne pas :
SELECT text as (SELECT language FROM `table` where id = 1) FROM `table` where id = 1;
(SELECT language FROM
table where id = 1)
renverra "allemand", donc la requête devrait être :
"Sélectionnez le texte allemand à partir de table
où id = 1 ;" mais cela ne fonctionne pas.
Existe-t-il un moyen de le faire en une seule requête ?
Bravo, Thomas
Vous devez modifier un peu le schéma du tableau ; ajout d'une référence pour regrouper les langues que vous souhaitez utiliser
Puis SQL
Données factices
Une option que vous pouvez utiliser est
PREPARED STATMENT
:La première étape consiste à allouer dynamiquement la variable
@sql
变量所需的列。然后,将先前分配的@sql
变量与最终SELECT
查询的其余部分连接起来,然后将其重新分配给@sql
. Les demandes seront envoyées à :Enfin, nous préparons, exécutons puis désallouons l'instruction allouée dans la variable
@sql
et vous obtiendrez le résultat attendu.Démo Violon