|
|
Beloe007


: 05.03.2009 : 1732
|
| : 25.08.2010, 20:48 : SELECT Statement spinnt? MS Access |
|
|
Einer
http://stackoverflow.com/questions/543580/equals-vs-like/2336940#2336940
und ein anderer
http://stackoverflow.com/questions/543580/equals-vs-like/543593#543593
und noch einer:
| : |
| This answer is terrible. LIKE and '=' are completely distinct operators, but just happen to behave similarly in some small subset of cases. For the sake of posterity, please read the rest of the replies here, or at least google for "mysql like" before you commit this to memory. – mehaase Jun 2 at 10:41 |
...aber wird mir jetzt zu viel.
Ich habe meines gesagt, ich habe davon keine Ahnung... weiß nur was mir mal jemand mit viel Ahnung gesagt hat.
Ich muss hier keine Quellen suchen, habe kein Problem, ich muss mir das eh mal abgewöhnen kostet zu viel Zeit die guten Beiträge zwischen dem ganzen veralteten und weiterverbreiteten Müll im Internet zu finden.
Und auch MySQL hat sich weiterentwickelt  |
|
| Nach oben |
|
 |
Beloe007


: 05.03.2009 : 1732
|
| : 25.08.2010, 21:02 : SELECT Statement spinnt? MS Access |
|
|
PS damit zumindest das Wesentliche für den Thread gequotet ist:
| : |
EQUALS compares two pieces of data byte by byte. This means that equivalent strings in different encodings may not be equal, even though they look the same to the eye.
LIKE compares strings, and it takes into account the encoding of each string so as not to be fooled by different encodings of the same content. |
|
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 25.08.2010, 21:23 : SELECT Statement spinnt? MS Access |
|
|
| Beloe007 hat Folgendes geschrieben: |
PS damit zumindest das Wesentliche für den Thread gequotet ist:
|
hmm... nur das genau das nun hier nix zur Sache tut... weil ja schon gesagt wurde das es keine Sonderzeichen gibt die je nach encoding anders sein könnten...
und bezüglich der performance hattest du ja bereits selber einen Link mit Vergleichen gepostet: http://myitforum.com/cs2/blogs/jnelson/archive/2007/11/16/108354.aspx
und wenn du dir dort die Unterschiede zwischen = und LIKE bei einem Wort ohne wildcards anschaust ist das schon ein netter Unterschied...
mit = sind es 0,0065704 und mit LIKE eben 0,0083908
also mit LIKE dauert es fast 28% länger... |
|
| Nach oben |
|
 |
sx06050


: 15.07.2008 : 2963
|
| : 25.08.2010, 21:37 : SELECT Statement spinnt? MS Access |
|
|
Folgendes sollte funktionieren
SELECT *
FROM testtabelle
WHERE (((testtabelle.[testfeld])<>'mein' Or (testtabelle.[testfeld]) Is Null)) OR (((testtabelle.[testfeld])=" "));
Das demenstprechende testtabelle etc. natürlich dann noch austauschen
SX06050
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; } |
|
| Nach oben |
|
 |
Beloe007


: 05.03.2009 : 1732
|
| : 25.08.2010, 22:31 : SELECT Statement spinnt? MS Access |
|
|
btw. Performance und Konsistenz usw... ist bei Oracle äußerst wichtig, gerade wenn man für mehrere hundert Millionen Datensätze X abfragen gleichzeitig managen muss... auch wenn da die Antwort nicht in Millisekunden da sein muss
Das war 2007, was aktuelleres habe ich leider nicht gefunden.
Will auch nicht abstreiten das es nicht mehr so ist, aber verneinen würde ich es auch nicht. Zumindest wenn man keinen Index anlegt.
| : |
| weil ja schon gesagt wurde das es keine Sonderzeichen gibt die je nach encoding anders sein könnten... |
->
| e-fee hat Folgendes geschrieben: |
| Wenn ich die Bedingung in Klammern gesetzt verneine, bekomme ich korrekt nur die Datensätze mit meinstring. |
Das ist der springende Punkt, der mich zu der Antwort gebracht hat... die ich im Nachhinein, wegen dem Zeitaufwand, bedauere. |
|
| Nach oben |
|
 |
nerd


: 15.02.2005 : 1686 : AKL
|
| : 26.08.2010, 07:23 : SELECT Statement spinnt? MS Access |
|
|
| e-fee hat Folgendes geschrieben: |
| Gibt da so ein Stichwort, das nennt sich Performance ... |
Und weil du performance brauchst faellt deine wahl auf MS Access?
prinzipiell benutzt man <> fuer numerische vergleiche, und LIKE/NOT LIKE fuer stringvergleiche (muss man nicht machen ; ist aber guter stil). performanceprobleme bekommst du erst wenn deine suche mit einer wildcard beginnt (... WHERE field LIKE '%mystring%' ...) weil dann auch ein index nutzlos ist und wirklich jedes feld von anfang bis ende verglichen werden muss.
ansonsten: welchen zeichensatz und feldtypen benutzt du fuer dein fragliches feld?
marketing through social media is just like herding cats. and just to make it interesting, many of the cats are drunk and stupid...
blackhat linkkauf und so...  |
|
| Nach oben |
|
 |
Beloe007


: 05.03.2009 : 1732
|
| : 26.08.2010, 08:58 : SELECT Statement spinnt? MS Access |
|
|
Puh, jetzt bin ich erleichtert, Danke!
btw. @sx06050
Sehr Leistungsstark sieht das nicht aus im Vergleich zu NOT LIKE  |
|
| Nach oben |
|
 |
sx06050


: 15.07.2008 : 2963
|
| : 26.08.2010, 11:08 : SELECT Statement spinnt? MS Access |
|
|
Ok, um die Leistungsstärke ging´s mir ja ned.
Es sollte in der Ursprungsfrage ja lediglich funktionieren, dass alle Datensätze kommen.
Hab´s einfach kurz ins Access eingegeben und dann die SQL-Ansicht hier gepostet.
SX06050
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; } |
|
| Nach oben |
|
 |
e-fee


: 08.05.2007 : 3298
|
| : 26.08.2010, 16:20 : Re: SELECT Statement spinnt? MS Access |
|
|
| DanielS hat Folgendes geschrieben: |
SELECT * FROM tabelle WHERE feld <> 'meinstring' or feld IS NULL |
Jo, das war's, das hat geholfen!
In der Tabelle gab es aus welchen Gründen auch immer zwei Arten von leeren Feldern innerhalb dieser Spalte. Die einen wurden ja auch schon vorher angezeigt, die anderen nicht.
Letztere waren dann NULL. Erstere nicht.
Ansonsten noch zu Access und Performance: ICH hab mir NICHT ausgesucht, damit zu arbeiten! |
|
| Nach oben |
|
 |
DanielS


: 03.08.2008 : 1177
|
| : 26.08.2010, 16:32 : Re: SELECT Statement spinnt? MS Access |
|
|
| e-fee hat Folgendes geschrieben: |
| DanielS hat Folgendes geschrieben: |
SELECT * FROM tabelle WHERE feld <> 'meinstring' or feld IS NULL |
Jo, das war's, das hat geholfen!
|
Freut mich. Oder um das in diesem Thread am meisten gefallenen Wort zu benutzen: I LIKE it  |
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 26.08.2010, 16:34 : SELECT Statement spinnt? MS Access |
|
|
hmm... NULL ist nicht <> 'meinstring'?
komisches winzigweich gedöns... |
|
| Nach oben |
|
 |
DanielS


: 03.08.2008 : 1177
|
| : 26.08.2010, 16:38 : SELECT Statement spinnt? MS Access |
|
|
| net(t)worker hat Folgendes geschrieben: |
hmm... NULL ist nicht <> 'meinstring'?
komisches winzigweich gedöns... |
Ich hätte jetzt gesagt, das hat nix mit winzigweich zu tun, weil es in MS SQL Server auch so ist, aber das ist ja auch winzigweich-zeug
WHERE bla = '' liefert auch keine Zeilen mit NULL-Werten. |
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 26.08.2010, 16:44 : SELECT Statement spinnt? MS Access |
|
|
| DanielS hat Folgendes geschrieben: |
| WHERE bla = '' liefert auch keine Zeilen mit NULL-Werten. |
gut, das NULL und '' Unterschiedliche Werte sind kann ich noch ein wenig nachvollziehen.... aber beides ist doch ganz eindeutig <> 'meinstring'... |
|
| Nach oben |
|
 |
sx06050


: 15.07.2008 : 2963
|
| : 26.08.2010, 17:14 : SELECT Statement spinnt? MS Access |
|
|
ist so: zwischen Null, Nix und Leer ist nen Unterschied.
SX06050
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; } |
|
| Nach oben |
|
 |
e-fee


: 08.05.2007 : 3298
|
| : 26.08.2010, 17:20 : Re: SELECT Statement spinnt? MS Access |
|
|
| DanielS hat Folgendes geschrieben: |
| e-fee hat Folgendes geschrieben: |
| DanielS hat Folgendes geschrieben: |
SELECT * FROM tabelle WHERE feld <> 'meinstring' or feld IS NULL |
Jo, das war's, das hat geholfen!
|
Freut mich. Oder um das in diesem Thread am meisten gefallenen Wort zu benutzen: I LIKE it  |
Wir sollten mal schauen, wo der Fred jetzt zu LIKE rankt - zumindest bei den deutschsprachigen Ergebnissen! |
|
| Nach oben |
|
 |