SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.08.2004, 23:38:51
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
gegenteil von DISTINCT

Ist es möglich, zum Beispiel alle duplikate auszulesen mit einem Select?

zB so etwas in der art:
SELECT a.id, b.id FROM tabelle WHERE a.feld1 = b.feld1 AND a.feld2 = b.feld2 AND a.id != b.id

Ich hoffe das ist verständlich. Es sollen einfach alle duplikate ausgelesen und angezeigt werden.

a und b sind hierbei keine Tabellen! es war einfach eine notation von mir, um anzuzeigen, dass die einträge nicht gleich sind.

zB sähe eine tabelle so aus:
id | feld1 | feld2
1 | A | B
2 | C | B
3 | A | C
4 | A | B
5 | A | C

Dann müssten alle einträge, ausser der 2. ausgegeben werden (weil dieser nicht mehrfach vorhanden ist)

Danke

Geändert von Gweilo (10.08.2004 um 23:42:20 Uhr)
Mit Zitat antworten
  #2  
Alt 11.08.2004, 08:09:24
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Habe Deine Beispieltabelle mal konstruiert. Die Abfrage sieht dann so aus:
Code:
SELECT COUNT(f1) AS cf1, COUNT(f2) AS cf2, f1, f2
FROM asd
GROUP BY f1, f2
HAVING cf1>1 AND cf1=cf2
Willst Du bloß die Datensätze haben, die einmalig vorkommen, dann machst Du aus dem > einfach ein =

Die ID des Datensatzes zu ermitteln war mir leider nicht so richtig möglich. Vielleicht geht's auch ohne.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 11.08.2004, 10:15:04
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
danke dir, genau nach sowas habe ich gesucht.
Mit Zitat antworten
  #4  
Alt 11.08.2004, 13:54:04
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
das ginge sicher auch mit ner CASE IF THEN ELSE abfrage, wäre aber etwas umständlicher...
Mit Zitat antworten
  #5  
Alt 11.08.2004, 13:55:56
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Original geschrieben von feuervogel
das ginge sicher auch mit ner CASE IF THEN ELSE abfrage, wäre aber etwas umständlicher...
Lust das mal zu probieren? Habe damit noch nie gearbeitet, würde mich interessieren, wie das aussehen müsste.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #6  
Alt 11.08.2004, 20:56:13
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
argh, ich wusste das sowas dabei heraus kommt:)

na gut, ich versuchs, werds aber nicht testen!

SELECT
CASE WHEN COUNT(f1) > 1 THEN COUNT(f1) END AS cf1,
CASE WHEN COUNT(f2) = cf1 THEN COUNT(f2) END AS cf2,
f1,
f2,
FROM
asd
GROUP BY
f1, f2


p.s.@c4: hast du mein haushaltstatistiktool gesehen? das basiert auf 12 tabellen, damit hab ich mir verknüpfungen beigebracht *ggg*
Mit Zitat antworten
  #7  
Alt 12.08.2004, 08:22:30
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Sieht sehr chaotisch aus mit dem CASE-WHEN-THEN.

Habe den Query mal getestet: "#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM asd GROUP BY f1, f2 LIMIT 0, 30' at line 8" :)
Code:
 1> SELECT 
 2> CASE WHEN COUNT( f1 ) >1
 3> THEN COUNT( f1 ) 
 4> END AS cf1, 
 5> CASE WHEN COUNT( f2 ) = cf1
 6> THEN COUNT( f2 ) 
 7> END AS cf2, f1, f2, 
 8> FROM asd
 9> GROUP BY f1, f2
10> LIMIT 0 , 30
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #8  
Alt 12.08.2004, 10:33:22
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
Zitat:
Sieht sehr chaotisch aus mit dem CASE-WHEN-THEN.
Zitat:
wäre aber etwas umständlicher...
erzähl mir nix über chaotisch:

PHP-Code:
$sql         "
SELECT 
t1.cid AS cid , t1.name AS name , CASE WHEN t2.catid IS NULL THEN 0 ELSE COUNT( cid ) END AS amount
FROM
h_usercats AS t3 , h_catnames AS t1 LEFT OUTER JOIN h_cats AS t2 
ON
cid = t2.catid 
WHERE
t3.userid = '{$_SESSION[ 'uid' ]}' AND t3.uc_tid = cid
GROUP BY
cid
ORDER BY
amount DESC
"

soll aus einer tabelle kategorien auswählen, zählen, wie viele artikel einer kategorie zugeordnet sind und wenn das keine sind, dem feld 0 zuordnen; dann wird nach der häufigkeit der vorkommen sortiert.
Mit Zitat antworten
  #9  
Alt 12.08.2004, 10:40:06
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Pfui, das sieht ja aus!

Aber gut, ich werde mir die Existenz von CASE & Co. bei MySQL mal merken. Vielleicht braucht man's ja mal...
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #10  
Alt 12.08.2004, 10:50:08
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
Zitat:
Pfui, das sieht ja aus!
*hust* dafür kann ichs jetzt *hust*

du willst dich nicht mit regulären ausdrücken im mysql beschäftigen, DAS ist ein krampf! und zweitens:

PHP-Code:
$sql             "
SELECT 
t1.id AS id , t2.info AS info , t3.price AS price , CONCAT( t4.month, '/' , t5.year ) AS `time` , t7.name AS cat , CONCAT( `t5`.`year` , `t4`.`month` ) AS `timeorder`
FROM 
h_ids AS t1 , h_infos AS t2 , h_prices AS t3 , h_months AS t4 , h_years AS t5 , h_cats AS t6 , h_catnames AS t7 , h_usercats AS t8
WHERE 
id = t2.in_tid AND id = t3.pr_tid AND id = t4.mo_tid AND id = t5.ye_tid AND id = t6.ca_tid AND t6.catid = t7.cid AND t8.uc_tid = t7.cid AND t8.userid = '{$_SESSION[ 'uid' ]}'
ORDER BY"

DAS ist pfui!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:19:28 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt