Déconstruire les tables MySQL
P粉549986089
P粉549986089 2023-08-29 18:24:12
0
1
466
<p>Je me demandais si je pouvais changer cette sortie en : </p> <pre class="brush:php;toolbar:false;">Base de données utilisateur Sélectionner Insérer Mettre à jour Supprimer Créer des références Modifier Supprimer ------------- -------- ------ ------ ------ - ----- ------ ---------- ------ -------- mysql.session performance_schema 1 0 0 0 0 0 0 0 mysql.sys sys 0 0 0 0 0 0 0 0</pre> <p>Cela devient comme ceci :</p> <pre class="brush:php;toolbar:false;">Privilèges des utilisateurs performance_schema sys ----- ---------- ------------------ --- mysql.session Sélectionnez 1 mysql.session Insérer 0 mysql.session Mise à jour 0 mysql.session Supprimer 0 mysql.session Créer 0 Références mysql.session 0 mysql.session Modifier 0 mysql.session Supprimer 0 mysql.sys Sélectionnez 0 mysql.sys Insérer 0 mysql.sys Mise à jour 0 mysql.sys Supprimer 0 mysql.sys Créer 0 Références mysql.sys 0 mysql.sys Modifier 0 mysql.sys Supprimer 0</pre> <p>L'instruction de requête que j'ai utilisée est : </p> <pre class="brush:php;toolbar:false;">SELECT DISTINCT UTILISATEUR "Utilisateur", db "Base de données", SI(Select_priv = 'Y', '1', '0') AS "Sélectionner", SI(Insert_priv = 'Y', '1', '0') AS "Insérer", IF(Update_priv = 'Y', '1', '0') AS "Mise à jour", IF(Delete_priv = 'Y', '1', '0') AS "Supprimer", SI (Create_priv = 'Y', '1', '0') AS "Créer", IF(References_priv = 'Y', '1', '0') AS "Références", SI(Alter_priv = 'Y', '1', '0') AS "Alter", IF(Drop_priv = 'Y', '1', '0') AS "Drop" DEPUIS mysql.db COMMANDÉ PAR UTILISATEUR, Db;≪/pre> <p>Toute aide serait grandement appréciée. Merci d'avance! </p>
P粉549986089
P粉549986089

répondre à tous(1)
P粉481815897

Voici un exemple de « unpivot » :

(SELECT User AS Users, 'Select' AS Privileges, 1 AS PrivOrder, MAX(CASE db WHEN 'performance_schema' THEN Select_priv='Y' END) AS `performance_schema`, MAX(CASE db WHEN 'sys' THEN Select_priv='Y' END) AS `sys` FROM db GROUP BY User)
UNION
(SELECT User, 'Insert', 2, MAX(CASE db WHEN 'performance_schema' THEN Insert_priv='Y' END), MAX(CASE db WHEN 'sys' THEN Insert_priv='Y' END) FROM db GROUP BY User)
UNION
(SELECT User, 'Update', 3, MAX(CASE db WHEN 'performance_schema' THEN Update_priv='Y' END), MAX(CASE db WHEN 'sys' THEN Update_priv='Y' END) FROM db GROUP BY User)
UNION
(SELECT User, 'Delete', 4, MAX(CASE db WHEN 'performance_schema' THEN Delete_priv='Y' END), MAX(CASE db WHEN 'sys' THEN Delete_priv='Y' END) FROM db GROUP BY User)
UNION
(SELECT User, 'Create', 5, MAX(CASE db WHEN 'performance_schema' THEN Create_priv='Y' END), MAX(CASE db WHEN 'sys' THEN Create_priv='Y' END) FROM db GROUP BY User)
...
ORDER BY Users, PrivOrder;

Désolé, il n'existe aucun moyen de définir automatiquement des requêtes pivot ou non pour les colonnes par schéma en fonction des données trouvées par la requête. Les colonnes doivent être définies dans la requête avant que celle-ci ne commence à lire les données.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!