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 |
27.05.2013, 16:15:42
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 39
Beiträge: 3
|
|
Abwechselnde sortierung (komplex)
Hi,
seit Tagen verzweifle ich an dieser Lösung.. folgendes Problem:
Ich habe eine Tabelle mit 300.000 Personen, die jeweils einem Land zugeordnet sind. Es gibt z.B. 50.000 deutsche, 5.000 Österreicher, 200 Inder, 15.000 Russen etc.
Jede dieser Personen hat ein Beruf. Z.B. sind 2.000 deutsche Buchhalter, 40 sind Sportler, 5.000 sind Bauarbeiter etc.
Jetzt möchte alle deutschen auflisten, die dann abwechselnd angezeigt werden. beispiel:
Code:
Jan Bauarbeiter
Jens Sportler
Moriz Buchhalter
Jenny Bauarbeiterin
Micha Sportler
Olga Buchhalterin
etc.
Ich habe zwar Lösungen für 2 Unterschiedliche Werte gefunden (nach geschlecht) aber hier gibts 30 unterschiedliche beurfe, weshalb das nicht wirklich geht.
Ich habe auch überlegt die sortierung pro Beruf zwischenzuspeichern, aber da kommt man schnell auf einige Millionen Datensätze und die sortierung ändert sich alle 10 Minuten, weil der Abfrage noch die popularität der Personen beobachtet wird.
Kann mir da jemand helfen?
Danke und viele Grüße
Flare
|
27.05.2013, 16:47:41
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Abwechselnde sortierung (komplex)
Du hast vergessen, das create table und ein paar Beispieldatensätze zu posten.
Bezüglich der Nationalitäten hoffe ich doch, daß es dafür Spalte gibt, nach der man sieben kann.
|
27.05.2013, 19:50:39
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 39
Beiträge: 3
|
|
AW: Abwechselnde sortierung (komplex)
Hi, natürlich, sry.
Code:
-- Exportiere Struktur von Tabelle personen
CREATE TABLE IF NOT EXISTS `personen` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`country` char(2) DEFAULT NULL,
`beruf_id` tinyint(4) DEFAULT NULL,
`bekanntheit` int(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `country` (`country`),
KEY `beruf_id` (`beruf_id`),
KEY `bekanntheit` (`bekanntheit`)
) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
-- Exportiere Daten aus Tabelle personen: 1 rows
/*!40000 ALTER TABLE `personen` DISABLE KEYS */;
INSERT INTO `personen` (`id`, `name`, `country`, `beruf_id`, `bekanntheit`) VALUES
(1, 'John', 'DE', 1, 25),
(2, 'John', 'DE', 1, 25),
(3, 'Jens', 'DE', 3, 25),
(4, 'Nina', 'DE', 3, 100),
(5, 'Nico', 'AT', 2, 25),
(6, 'Alina', 'DE', 1, 25),
(7, 'Jenny', 'AT', 2, 25),
(8, 'Andy', 'DE', 2, 25),
(9, 'Sandra', 'DE', 4, 25),
(10, 'Kevin', 'DE', 1, 25),
(11, 'Josh', 'DE', 3, 25),
(12, 'Nelson', 'DE', 5, 100),
(13, 'Sally', 'AT', 2, 25),
(14, 'Mike', 'DE', 1, 25),
(15, 'Janta', 'CH', 2, 25),
(16, 'Kelvin', 'DE', 5, 25),
(17, 'Peggy', 'DE', 5, 25);
|
30.05.2013, 21:29:11
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Abwechselnde sortierung (komplex)
Zitat:
Zitat von flare
Hi, natürlich, sry.
|
Danke.
Zitat:
Jetzt möchte alle deutschen auflisten,
|
Code:
SELECT ... WHERE `country`='DE' ...
Zitat:
die dann abwechselnd angezeigt werden.
|
Huch?
|
30.05.2013, 22:22:58
|
Anfänger
|
|
Registriert seit: May 2013
Alter: 39
Beiträge: 3
|
|
AW: Abwechselnde sortierung (komplex)
Huhu, genau das abwechselnde ist die schwierigkeit an der ganzen sache.
Mit "abwechselnd" damit sind die Berufe gemeint wie in dem Beispiel.
Code:
Jan Bauarbeiter
Jens Sportler
Moriz Buchhalter
Jenny Bauarbeiterin
Micha Sportler
Olga Buchhalterin
etc.
Hier kann man leider nicht "ORDER BY beruf" machen, denn sonst sieht die Ausgabe so aus:
Sportler
Sportler
.....
Buchhalter
Buchhalter
Buchhalter
....
Bauarbeiterin
....
etc.
gewollt ist aber:
Sportler
Buchhalter
Bauarbeiterin
Sportler
Buchhalter
Bauarbeiterin
Sportler
Buchhalter
Bauarbeiterin
.....
abwechselnd halt.
Hier gibt es ein Beispiel mit Geschlechter: http://www.ureader.de/msg/13455143.aspx
nur kann ich das leider nicht anwenden, weil ich mehr als 20 unterschiedliche Berufe habe..
Jetzt köntne man das ganze mit 5-10 querys etc. lösen, das wäre aber nicht optimal.. dasher such ich nach einer optimalen Lösung.
Jetzt könnte man sagen man kann pro Land alles einmal durchsotieren und als cache speichern.. nur hat man dann 60 Länder * 20 Berufe * 500.000 Personen an Datensätzen und man kann das nicht mal alle 10 Minuten machen.
Viele Grüße
Flare
|
31.05.2013, 05:36:47
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Abwechselnde sortierung (komplex)
Zitat:
Zitat von flare
Huhu, genau das abwechselnde ist die schwierigkeit an der ganzen sache.
Mit "abwechselnd" damit sind die Berufe gemeint wie in dem Beispiel.
|
Juhu. Endlich wirste konkret.
Andreas Kretschmer hatte sich dazu eigentlich genauer geäußert.
Zitat:
nur kann ich das leider nicht anwenden, weil ich mehr als 20 unterschiedliche Berufe habe..
|
Das ist doch nur für die Ausgabe relevant. Oder hattest Du vor, "60 Länder * 20 Berufe * 500.000 Personen" auszugeben?
Zitat:
Jetzt köntne man das ganze mit 5-10 querys etc. lösen, das wäre aber nicht optimal..
|
Und wieso nicht? Es gibt doch mysqli::multi_query() incl. Beispiel und Userbeispielen.
Allerdings mußt Du dabei beachten, daß MySQL dann mehrere Ergebismengen u/o Returnwerte sequentiell anbietet.
Code:
INSERT INTO tabelle (col1, col2) VALUES (5,8); # keine Ergebnismenge sondern TRUE
SELECT col1 FROM tabelle WHERE col2=8; # Ergebnismenge
DELETE FROM tabelle WHERE col2=8; # keine Ergebnismenge sondern TRUE
Bei Singlequeries gilt das:
Bei INSERT, UPDATE, REPLACE or DELETE gibts TRUE, wenn es keinen Syntaxmecker gab. FALSE kommt, wenn MySQL mit der Abfrage ein Problem hat.
Wieviele Einträge/Veränderungen es gab, liefert mysqli::affected_rows.
Bei SELECT ist der Rückgabewert entweder die Ergebnismenge oder FALSE, wenns Mecker gab. Die Anzahl liefert mysqli_result::num_rows.
Das ist nun beim Multiquery etwas anders. mysqli::store_result() liefert die einzelnen Ergebnisse oder Ergebnismengen.
Die Anzahl beim multi_query SELECT dürfte mysqli_result::num_rows liefern. Ob es, wenn ja - wo, ne affected_rows Variable gibt, weiß ich nicht.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 19:10:17 Uhr.
|