MySQL distinct
Kalle_B
- datenbank
0 Vinzenz Mai0 Kalle_B
Hallöle,
habe ein Verständnisproblem und komme nicht auf die Lösung.
In einer Tabelle habe ich einen UNIQUE Key auf besucher_id, aussteller_id
die Abfrage
select
count(*)
,count(CONCAT( CAST(kon1.besucher_id AS CHAR), '_', CAST(kon1.aussteller_id AS CHAR)))
from tm_kontakte kon1
where owner_id=5 AND ( prio_1=1 OR prio_2=1 )
ergibt 3665 3665. Soweit gut.
count(*)
,count(DISTINCT CONCAT( CAST(kon1.besucher_id AS CHAR), '_',
CAST(kon1.aussteller_id AS CHAR)))
ergibt jedoch 3665 1028
Die Kombination besucher_id/aussteller_id *kann* doch gar nicht doppelt sein.
Gruß, Kalle
Hallo Kalle,
count(*)
,count(DISTINCT CONCAT( CAST(kon1.besucher_id AS CHAR), '_',
CAST(kon1.aussteller_id AS CHAR)))
wie wäre es, sich in einer temporären Tabelle (oder einem View) das Ergebnis von
SELECT CONCAT( CAST(kon1.besucher_id AS CHAR),
'_',
CAST(kon1.aussteller_id AS CHAR)) kombination
und sich mittels weiterer Abfragen die anzeigen lassen, die mehrfach vorkommen und das in Deiner Tabelle zu überprüfen?
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
und sich mittels weiterer Abfragen die anzeigen lassen, die mehrfach vorkommen und das in Deiner Tabelle zu überprüfen?
besucher_id und aussteller_id sind vierstellige Zahlen.
Mit CONCAT( CAST(kon1.besucher_id AS CHAR), '_', CAST(kon1.aussteller_id AS CHAR))
ergibt sich dieses: 1234_5678
mit DISTINCT(CONCAT( CAST(kon1.besucher_id AS CHAR), '_', CAST(kon1.aussteller_id AS CHAR)))
dieses: 1234_56 Zwei Stellen werden abgeschnitten. Wie ist das denn möglich?
Lieben Gruß, Kalle
Hallo
besucher_id und aussteller_id sind vierstellige Zahlen.
Mit CONCAT( CAST(kon1.besucher_id AS CHAR), '_', CAST(kon1.aussteller_id AS CHAR))
ergibt sich dieses: 1234_5678
das wundert mich schon.
mit DISTINCT(CONCAT( CAST(kon1.besucher_id AS CHAR), '_', CAST(kon1.aussteller_id AS CHAR)))
dieses: 1234_56 Zwei Stellen werden abgeschnitten. Wie ist das denn möglich?
das auch.
Schau' Dir bitte an, was
CONCAT( CONVERT(kon1.besucher_id, CHAR(4)), '_', CONVERT(kon1.aussteller_id, CHAR(4)))
liefert, gern auch mit DISTINCT
Freundliche Grüße
Vinzenz
Hallo
CONCAT( CONVERT(kon1.besucher_id, CHAR(4)), '_', CONVERT(kon1.aussteller_id, CHAR(4)))
Ja, nach so etwas habe ich gesucht und dieses gefunden:
distinct CONCAT( CAST(kon1.besucher_id AS CHAR),'_',CAST(kon1.aussteller_id AS CHAR),13)
Beide Versionen laufen. Danke.
Lieben Gruß, Kalle