Suchmaschinenoptimierung
   
 

SEMSEO Konferenz 2012
 

 
 

SELECT Statement spinnt? MS Access

Gehe zu Seite 1, 2, 3  Weiter
Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Webprogrammierung, Templatedesign & Microformats
 IE6 DIV immer ganz unten sichtbar positionieren Picasa Slideshow... notfalls auch was anderes.  
e-fee

pr


: 08.05.2007
: 3297



: 25.08.2010, 15:46    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Stehe vor einem Rätsel:

Code:
SELECT * FROM tabelle WHERE feld <> 'meinstring'


Feld ist Textfeld, kann leer sein,diesen String oder einen anderen enthalten. Leider bekomme ich nicht alle Datensätze zurück, die meinstring nicht enthalten. Bei Verwendung von NOT mit = dasselbe Problem, != geht nicht wegen Syntaxfehler.
Wenn ich die Bedingung in Klammern gesetzt verneine, bekomme ich korrekt nur die Datensätze mit meinstring.
In der Summe habe ich aber nur 500 + 1000 von 2500 Datensätzen, kann doch nicht sein!
Und es spielt auch keine Rolle, ob feld leer oder nicht!

Logikfehler oder Tabelle geschrottet?
Nach oben
e-fee Private Nachricht senden
net(t)worker
Gast







: 25.08.2010, 15:51    : SELECT Statement spinnt? MS Access Antworten mit Zitat

und wenn du die SQL Abfrage mit einem ; am ende abschließt?

welche daten fehlen dir denn jeweils bei den einzelnen Abfragen.... also sind es z.B. die mit leerem textfeld?
Nach oben
profo

pr


: 18.01.2007
: 1709



: 25.08.2010, 16:18    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Mit der Abfrage solltest Du in der Tat alle Zeilen bekommen, bei denen feld nicht exakt "meinstring" lautet. Und vergleich doch noch mal die Summen von Deiner ersten mit der negierten Abfrage, also etwa:
Code:
SELECT (
    (SELECT COUNT(*) FROM tabelle)
    - (SELECT COUNT(*) FROM tabelle WHERE feld <> 'meinstring')
    - (SELECT COUNT(*) FROM tabelle WHERE NOT (feld <> 'meinstring'))
) as diff;

Wenn ungleich 0 ist Deine Tabelle wohl geschmolzen...

Ceterum censeo facebook esse delendam.
Nach oben
profo Private Nachricht senden
DanielS

pr


: 03.08.2008
: 1177



: 25.08.2010, 16:28    : Re: SELECT Statement spinnt? MS Access Antworten mit Zitat

e-fee hat Folgendes geschrieben:
Und es spielt auch keine Rolle, ob feld leer oder nicht!
Vielleicht meinst Du das damit, aber ich erwähne es trotzdem mal:

SELECT * FROM tabelle WHERE feld <> 'meinstring' or feld IS NULL
Nach oben
DanielS Private Nachricht senden
e-fee

pr


: 08.05.2007
: 3297



: 25.08.2010, 16:35    : SELECT Statement spinnt? MS Access Antworten mit Zitat

net(t)worker hat Folgendes geschrieben:
und wenn du die SQL Abfrage mit einem ; am ende abschließt?


Oh Mann, Du Nase, wenn es daran gelegen hätte, dann hätte ich in meinem Script wohl 'nen Parsing-Fehler gekriegt, aber nicht eine unvollständige Menge an Datensätzen!
Außerdem war das doch jetzt eh nur ein angepasstes Beispiel, da verzichtet man schon mal auf das Semikolon am Ende, vor allem dann, wenn man den Beitrag im Zug auf dem Handy tipselt.

Und dass es keinen Zusammenhang gibt, ob das Textfeld leer ist oder nicht, hab ich oben ja schon geschrieben.
Ebenso ist es nicht von Bedeutung, ob ich das Statement in meinem Script ausführe oder in Access direkt.
Wenn ich keine einschränkende Bedingung habe, also
Code:
SELECT * FROM tabelle;
, werden auch wieder alle 2500 Datensätze angezeigt / ausgegeben.

@profo kann ich dann leider erst morgen ausprobieren, aber danke schon mal! Datenbank komprimieren und reparieren hab ich auch schon gemacht.
Sch... MS-Produkte ... manchmal!
Nach oben
e-fee Private Nachricht senden
e-fee

pr


: 08.05.2007
: 3297



: 25.08.2010, 16:38    : Re: SELECT Statement spinnt? MS Access Antworten mit Zitat

DanielS hat Folgendes geschrieben:
e-fee hat Folgendes geschrieben:
Und es spielt auch keine Rolle, ob feld leer oder nicht!
Vielleicht meinst Du das damit, aber ich erwähne es trotzdem mal:

SELECT * FROM tabelle WHERE feld <> 'meinstring' or feld IS NULL


Danke, wie gesagt scheint es ja keine Rolle zu spielen, aber ich nehme es mal als weitere Möglichkeit für morgen mit auf ...
Nach oben
e-fee Private Nachricht senden
Beloe007

pr


: 05.03.2009
: 1732



: 25.08.2010, 17:22    : SELECT Statement spinnt? MS Access Antworten mit Zitat

SELECT * FROM tabelle WHERE feld NOT LIKE 'meinstring';
Nach oben
Beloe007 Private Nachricht senden
net(t)worker
Gast







: 25.08.2010, 17:23    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Beloe007 hat Folgendes geschrieben:
SELECT * FROM tabelle WHERE feld NOT LIKE 'meinstring';


LIKE ist böse....
Nach oben
e-fee

pr


: 08.05.2007
: 3297



: 25.08.2010, 17:55    : SELECT Statement spinnt? MS Access Antworten mit Zitat

net(t)worker hat Folgendes geschrieben:
Beloe007 hat Folgendes geschrieben:
SELECT * FROM tabelle WHERE feld NOT LIKE 'meinstring';


LIKE ist böse....


Und wird hier überdies nicht benötigt.
Ich muss dazu sagen, dass die Strings jeweils aus nur einem Token (="Wort") bestehen und es derzeit auch nur eine gute Handvoll verschiedene davon gibt (was aber nicht so bleiben muss!!!).
Nach oben
e-fee Private Nachricht senden
Beloe007

pr


: 05.03.2009
: 1732



: 25.08.2010, 18:18    : SELECT Statement spinnt? MS Access Antworten mit Zitat

e-fee hat Folgendes geschrieben:
net(t)worker hat Folgendes geschrieben:
Beloe007 hat Folgendes geschrieben:
SELECT * FROM tabelle WHERE feld NOT LIKE 'meinstring';


LIKE ist böse....


Und wird hier überdies nicht benötigt.
Ich muss dazu sagen, dass die Strings jeweils aus nur einem Token (="Wort") bestehen und es derzeit auch nur eine gute Handvoll verschiedene davon gibt (was aber nicht so bleiben muss!!!).


Kommt wohl drauf an was in den Feldern drin steht und welche Kodierung diese haben...

http://dev.mysql.com/doc/refman/5.1/de/string-comparison-functions.html

:
Gemäß dem SQL-Standard führt LIKE die Überprüfung auf Zeichenbasis durch, kann also Ergebnisse erzeugen, die sich von denen des Vergleichsoperators = unterscheiden:

Code:

mysql> SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci;
+-----------------------------------------+
| 'ä' LIKE 'ae' COLLATE latin1_german2_ci |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+
mysql> SELECT 'ä' = 'ae' COLLATE latin1_german2_ci;
+--------------------------------------+
| 'ä' = 'ae' COLLATE latin1_german2_ci |
+--------------------------------------+
|                                    1 |
+--------------------------------------+
Nach oben
Beloe007 Private Nachricht senden
e-fee

pr


: 08.05.2007
: 3297



: 25.08.2010, 18:24    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Mmh, keine Sonderzeichen drin. Und wenn in einem Feld genau gar kein Zeichen drin steht ... klappt es bei einigen und bei anderen nicht (und nein, da sind keine Leerzeichen etc. drin!)
Nach oben
e-fee Private Nachricht senden
Beloe007

pr


: 05.03.2009
: 1732



: 25.08.2010, 18:50    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Also ich hab von meinem Professor der DBA bei ner großen Bank war gelernt das man meistens LIKE verwenden soll... aber für den war MySQL Dreck und MS Access noch viel weniger wert. Für den gab es nur Oracle, natürlich sehr Praxisfeindlich.

Ich habe keine Ahnung wie es bei MS Access ist, MySQL benutze ich auch nur selten... also kein Plan, aber war das erste was mir in den Sinn kam.
Nach oben
Beloe007 Private Nachricht senden
e-fee

pr


: 08.05.2007
: 3297



: 25.08.2010, 19:04    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Gibt da so ein Stichwort, das nennt sich Performance ...
Nach oben
e-fee Private Nachricht senden
Beloe007

pr


: 05.03.2009
: 1732



: 25.08.2010, 19:39    : SELECT Statement spinnt? MS Access Antworten mit Zitat

Und wo soll da der Riesen unterschied sein ohne Wildcard?

http://myitforum.com/cs2/blogs/jnelson/archive/2007/11/16/108354.aspx

Jetzt ist aber genug mach es, lass es bleiben, oder mach es anders
Nach oben
Beloe007 Private Nachricht senden
net(t)worker
Gast







: 25.08.2010, 20:05    : SELECT Statement spinnt? MS Access Antworten mit Zitat

bei einer großen DB die in oracle erstellt wurde is performance nicht das entscheidene kriterium, aber bei webdingen kommt es eben auf performance an... darum benutzt man fürs web auch mysql und nicht Oracle... eben weil mysql optimal und performent ist für webseiten...
Nach oben
Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Webprogrammierung, Templatedesign & Microformats
Seite 1 von 3
Gehe zu Seite 1, 2, 3  Weiter

 






Ähnliche Beiträge
Thema Forum Antworten
ui.zanox.com spinnt - bei wem noch? ui.zanox.com spinnt - bei wem noch? Turbo SEO Partnernetzwerke 18 06.11.2011, 23:36 ui.zanox.com spinnt - bei wem noch?
Spinnt Adsense?! Spinnt Adsense?! Winegum90 Google Adsense 26 19.10.2011, 11:21 Spinnt Adsense?!
[S]Wer spinnt mir 20 Texte? [S]Wer spinnt mir 20 Texte? Linkbuilder_Bochum Marktplatz: Dienstleistungen 0 07.08.2011, 11:15 [S]Wer spinnt mir 20 Texte?
Posts oder Pages in Wordpress - Spinnt Google jetzt völlig? Posts oder Pages in Wordpress - Spinn... monezmo Google Forum 4 21.06.2011, 10:54 Posts oder Pages in Wordpress - Spinnt Google jetzt völlig?
Euer Wunschformat für Datenexport Access-Client ins Web? Euer Wunschformat für Datenexport Acc... Andreas I. Webprogrammierung, Templatedesign & Microformats 4 14.01.2011, 14:36 Euer Wunschformat für Datenexport Access-Client ins Web?
[S]Suche Schnittstellenprogrammierung aus Access DB [S]Suche Schnittstellenprogrammierung... pirap Marktplatz: Dienstleistungen 0 19.11.2010, 08:53 [S]Suche Schnittstellenprogrammierung aus Access DB
SELECT mit Join auf 2 Tabellen SELECT mit Join auf 2 Tabellen euroexchange.de Webprogrammierung, Templatedesign & Microformats 5 02.11.2010, 11:47 SELECT mit Join auf 2 Tabellen

Suchmaschinenoptimierung | Latent Semantische Optimierung (LSO) | SEO Blog | SEO Online Tools | Suchmaschinenmarketing Angebot | Online Marketing

Impressum

Dieses SEO Forum läuft unter phpBB.


Sie lesen gerade: SELECT Statement spinnt? MS Access