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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
10.08.2004, 23:38:51
|
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)
|
11.08.2004, 08:09:24
|
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.
|
11.08.2004, 10:15:04
|
Member
|
|
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
|
|
danke dir, genau nach sowas habe ich gesucht.
|
11.08.2004, 13:54:04
|
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...
|
11.08.2004, 13:55:56
|
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.
|
11.08.2004, 20:56:13
|
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*
|
12.08.2004, 08:22:30
|
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
|
12.08.2004, 10:33:22
|
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.
|
12.08.2004, 10:40:06
|
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...
|
12.08.2004, 10:50:08
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
*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!
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:19:28 Uhr.
|