Heim > Datenbank > MySQL-Tutorial > Wie kann ich benutzerdefinierte Feldwerte in SQL transponieren?

Wie kann ich benutzerdefinierte Feldwerte in SQL transponieren?

Susan Sarandon
Freigeben: 2025-01-05 02:10:40
Original
262 Leute haben es durchsucht

How Can I Transpose User-Defined Field Values in SQL?

SQL-Transponierungstechniken für benutzerdefinierte Feldwerte

In SQL können Situationen auftreten, in denen Sie in Zeilen gespeicherte Daten transponieren müssen Formularspalten. Ein solches Beispiel ist, wenn Sie eine Tabelle wie die unten beschriebene haben:

================================================
| Id | UserId | FieldName     | FieldValue     |
=====+========+===============+================|
| 1  | 100    | Username      | John Doe       |
|----+--------+---------------+----------------|
| 2  | 100    | Password      | pass123!       |
|----+--------+---------------+----------------|
| 3  | 102    | Username      | Jane           |
|----+--------+---------------+----------------|
| 4  | 102    | Password      | $ecret         |
|----+--------+---------------+----------------|
| 5  | 102    | Email Address | [email protected] |
------------------------------------------------
Nach dem Login kopieren

Um diese Daten in ein Format zu transponieren, in dem die FieldNames zu Spaltenüberschriften werden und die FieldValues ​​die entsprechenden Zeilendaten bilden, können Sie die nutzen Folgende SQL-Abfrage:

  SELECT t.userid
         MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
         MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
         MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
    FROM TABLE t
GROUP BY t.userid
Nach dem Login kopieren

Damit dieser Ansatz jedoch effektiv funktioniert, müssten Sie CASE-Anweisungen für jeden erwarteten FieldName-Wert definieren. Um die Flexibilität zu erhöhen, sollten Sie die Implementierung der Prepared Statement-Syntax (dynamisches SQL) von MySQL zum dynamischen Generieren dieser CASE-Anweisungen in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie kann ich benutzerdefinierte Feldwerte in SQL transponieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage