Identifiez les noms de colonnes avec des valeurs cohérentes pour une ligne spécifique
P粉738046172
P粉738046172 2023-12-11 09:56:34
0
1
338

J'essaie de faire une requête dans MySQL pour obtenir n'importe quelle colonne ayant une valeur spécifique pour une ligne spécifique. Dans MySQL, nous pouvons obtenir des lignes basées sur n'importe quelle valeur spécifique d'une colonne.

J'ai une table comme celle-ci :

+----+------------+------------+---------------+---------------+---------+----------------+---------
| ID | MSISDN     | MissedCall | SponsoredCall | AdvanceCredit | ACvalue | SuitablePackId | AutoTimeStamp       |
+----+------------+------------+---------------+---------------+---------+----------------+---------------------+
|  1 | 9944994488 |          1 |             0 |             1 |       0 |              1 | 2014-09-18 10:42:55 |
|  4 | 9879877897 |          0 |             1 |             0 |       0 |              2 | 2014-09-18 10:42:55 |
+----+------------+------------+---------------+---------------+---------+----------------+---------------------+

Ce dont j'ai besoin, c'est que lorsque je sélectionne une ligne basée sur MSISDN, elle renvoie tous les noms de colonnes de cette ligne avec une valeur fixe (par exemple 1).

Donc, dans le tableau ci-dessus, MSISDN = 9944994488 devrait revenir

MissedCall 
AdvanceCredit 
SuitablePackId

Ce que j'ai essayé, c'est :

SELECT COLUMN_NAME as names 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'bi' 
AND TABLE_NAME = 'useranalysisresult'

Cela renvoie les noms de colonnes de la table. Mais comment obtenir le nom de la colonne avec une valeur spécifique. Merci d'avance pour votre aide.

P粉738046172
P粉738046172

répondre à tous(1)
P粉765570115

Le commentaire est trop long.

Les requêtes SQL renvoient un ensemble fixe de colonnes. Vous ne pouvez pas modifier les paramètres par ligne. Vous pouvez utiliser des instructions préparées pour faire ce que vous voulez, même si cela peut sembler une approche mystérieuse.

Vous pouvez renvoyer une colonne contenant des valeurs concaténées entre elles. Quelque chose comme ça :

select concat_ws(',',
                 (case when MissedCall = 1 then 'Missed Call' end),
                 (case when SponsoredCall = 1 then 'Sponsored Call' end),
                 . . .
                )
from useranalysisresult;

Cela générera une list dans une seule colonne des drapeaux définis.

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!