2016-03-25 18 views
0

Hintergrundwie lassen mysql nicht entfernen doppeltes Element in Parameterliste

Markt Kollegen geben Sie mir eine Excel-Datei, Kunden Handys haben, und lassen Sie mich an diesen Kunden eine Art Coupon senden, einige Handys wiederholen sind, dass Das heißt, ich sollte mehr als einen Gutschein schicken.

gibt eine Tabelle haben diese Daten,

select * from t ; 
+----+------+ 
| id | name | 
+----+------+ 
| 1 | a | 
| 2 | b | 
| 3 | c | 
| 4 | d | 
| 5 | e | 
| 6 | f | 
+----+------+ 

select * from t where id in (1,2,1); 
+----+------+ 
| id | name | 
+----+------+ 
| 1 | a | 
| 2 | b | 
+----+------+ 

Sie mysql Auto entfernen Sie doppelte ID in in Parameterliste sehen können, aber ich möchte die Wirkung wie diese

+----+------+ 
| id | name | 
+----+------+ 
| 1 | a | 
| 2 | b | 
| 1 | a | 
+----+------+ 

, das ist in Parameter wie ein list kein set. Also wie könnte dies in mysql implementieren?

Antwort

0

Dies hilft Ihnen beim Hinzufügen der doppelten Datensätze in mySQL.

+1

Sollte es nicht UNION ALL sein? – piotrgajow

+0

Ja, ich habe alles vermisst. Es ist "Union all" –

+0

, aber Sie müssen etwas Arbeit tun, um diese Wiederholungs-ID zu filtern, und wie oft es sich wiederholte. – zhuguowei

0

könnte Einige Abhilfe diese auf diese Weise zu tun:

CREATE TEMPORARY TABLE tmp_id (ID INT); 

INSERT INTO tmp_id VALUES (1),(2),(1); -- etc 

SELECT t.* 
    FROM t 
    JOIN tmp_id 
     ON tmp_id.id = t.id; 
Verwandte Themen