2012-03-27 5 views
0

hinzufügen Ich habe diese SQL-Abfrage:, wie man mehr Spalten in mysql Abfrage

SELECT DISTINCT tb.SERIAL_NUM, tb.REVISION_NUM, tb.JOB_NUM, tb.JOB_TOTAL, tb.TEST_PROC, tb.BOX_NUM, tb.TEST_BENCH, tb.OPERATOR, tb.SW_REVISION, tb.TEST_DATE, tb.VISUAL_INSP, tb.TEST, tb.STATUS FROM tb 
WHERE tb.SERIAL_NUM>=%s 
AND tb.SERIAL_NUM <=%s 
AND tb.TEST = 'Pass' GROUP BY tb.SERIAL_NUM 

Es funktioniert gut, aber in meinem Tisch gibt es 200 weitere Spalten Ich möchte auf diese Abfrage hinzuzufügen, wie:

SELECT DISTINCT tb.SERIAL_NUM, tb.REVISION_NUM, tb.JOB_NUM, tb.JOB_TOTAL, tb.TEST_PROC, tb.BOX_NUM, tb.TEST_BENCH, tb.OPERATOR, tb.SW_REVISION, tb.TEST_DATE, tb.VISUAL_INSP, tb.TEST, tb.STATUS, column15.....,column215 FROM tb 
WHERE tb.SERIAL_NUM>=%s AND tb.SERIAL_NUM <=%s AND tb.TEST = 'Pass' GROUP BY tb.SERIAL_NUM 

Gibt es eine einfache Möglichkeit, diese Spalte in der Abfrage hinzuzufügen?

Antwort

2

, warum Sie nicht wählen Sie verwenden * wie diese

SELECT DISTINCT * FROM <table> WHERE <whereClause> 
+0

@BayoAlen verschiedene sollte mit * arbeiten. redigierte die Antwort, um das zu reflektieren –

+0

danke es funktioniert –

1

Hier ist ein anderer Weg, um alle Felder zu erhalten. Dann kopieren und einfügen in Ihre Abfrage ... Schema/System Tabellen sind in der Tat mächtig.

SELECT Group_concat(COLUMN_NAME Separator ', ') as allTableFields 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'tb' 
Group By table_name 

Was dies tut (oder tun soll) ist eine Liste aller Felder aus den Spalten in der Datenbank für die Tabelle tb erhalten. Dann gruppiert er sie zusammen mit einem Komma und Leerzeichen als Trennzeichen. So sollten die Ergebnisse etwas wie

field1, field2 sein, field3, field4, field5, FIELD6 ... field215