Rumah  >  Soal Jawab  >  teks badan

Kenal pasti nama lajur dengan nilai yang konsisten untuk baris tertentu

Saya cuba membuat pertanyaan dalam mysql untuk mendapatkan mana-mana lajur yang mempunyai nilai khusus untuk baris tertentu. Dalam Mysql kita boleh mendapatkan baris berdasarkan mana-mana nilai khusus lajur.

Saya ada meja seperti ini:

+----+------------+------------+---------------+---------------+---------+----------------+---------
| 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 |
+----+------------+------------+---------------+---------------+---------+----------------+---------------------+

Apa yang saya perlukan ialah apabila saya memilih baris berdasarkan MSISDN, ia harus mengembalikan semua nama lajur baris tersebut dengan nilai tetap (mis. 1).

Jadi dalam jadual di atas, MSISDN = 9944994488 harus kembali

MissedCall 
AdvanceCredit 
SuitablePackId

Apa yang saya cuba ialah:

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

Ini mengembalikan nama lajur jadual. Tetapi bagaimana untuk mendapatkan nama lajur dengan nilai tertentu. Terima kasih atas bantuan anda terlebih dahulu.

P粉738046172P粉738046172313 hari yang lalu340

membalas semua(1)saya akan balas

  • P粉765570115

    P粉7655701152023-12-12 00:03:09

    Komen terlalu panjang.

    Pertanyaan SQL mengembalikan set lajur tetap. Anda tidak boleh menukar tetapan secara berturut-turut. Anda boleh menggunakan pernyataan yang disediakan untuk melakukan apa yang anda mahu, walaupun ini mungkin kelihatan seperti pendekatan yang misteri.

    Anda boleh mengembalikan lajur yang mengandungi nilai yang digabungkan bersama. Sesuatu seperti ini:

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

    Ini akan menjana senarai dalam satu lajur set bendera.

    balas
    0
  • Batalbalas