Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> MySQL: Vergleichsoperatoren
cr4m0
Geschrieben am: So 8.06.2008, 12:00
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 178
Mitglied seit: 30.07.2007


Gibt es einen Unterschied zwischen den Vergleichsoperatoren "LIKE" und "=" in MySQL? Die folgenden vier Beispiele liefern alle dieselbe Antwort:
1) SELECT * FROM tabelle WHERE id = 4
2) SELECT * FROM tabelle WHERE id = '4'
3) SELECT * FROM tabelle WHERE id LIKE = 4
4) SELECT * FROM tabelle WHERE id LIKE = '4'
Dabei ist es egal, ob das Feld "id" vom Typ varchar, integer oder einem anderen Typ ist. Also kann man - egal bei welchem Datentyp - immer die Abfrage wie bei 2) machen, oder?

Danke für eure Hilfe im Voraus!
Top
PMEmail Poster
Top
 
 
blubdiblub
#2 Geschrieben am: So 8.06.2008, 12:39 (+00:39)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 48
Mitglied seit: 26.04.2008


= ist schneller
Top
PMEmail Poster
Top
 
cr4m0
#3 Geschrieben am: So 8.06.2008, 12:57 (+00:17)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 178
Mitglied seit: 30.07.2007


Und sonst gibt es keine Unterschiede? Wieso gibt es "LIKE" dann überhaupt? Wenn "=" schneller ist und es sonst keine Unterschiede gibt, sollte ja jeder "=" nehmen, oder?
Top
PMEmail Poster
Top
 
blubdiblub
#4 Geschrieben am: So 8.06.2008, 13:01 (+00:04)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 48
Mitglied seit: 26.04.2008


bei like kannst du wildcards benutzen: %
Top
PMEmail Poster
Top
 
Sascha Ahlers
#5 Geschrieben am: Mo 9.06.2008, 11:21 (+22:20)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


QUOTE (cr4m0 @ So 8.06.2008, 13:00)
[...]
3) SELECT * FROM tabelle WHERE id LIKE = 4
4) SELECT * FROM tabelle WHERE id LIKE = '4'
[...]

Das scheint eher eine falsche Syntax zu sein, LIKE wird ohne Gleichheitszeichen verwendet und i.d.R. folgt darauf ein String. Dieser String kann mit % und/oder _ verwendet werden, wobei % für ein beliebiges Zeichen steht, welches X-Mal vorkommt und Unterstrich für ein beliebiges Zeichen.

Ob Beispiel 1 oder 2 schneller ist hängt wohl noch davon ab, auf welchen Datentyp sich bezogen wird.


Gruß,
Sascha


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
cr4m0
#6 Geschrieben am: Mo 9.06.2008, 14:58 (+03:36)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 178
Mitglied seit: 30.07.2007


Danke für die Antwort!

Das mit dem "=" nach dem "LIKE" war ein Tippfehler. Also ist "LIKE" nur für die Suche mit Platzhaltern gedacht, wenn man keine Platzhalter braucht, sollte man "=" nehmen, richtig?

Aber nochmal zum "=": Warum liefern Abfragen mit Hochkommata und Abfragen ohne dieselben Ergebnisse? Dann kann man ja sowohl bei Integern als auch bei Strings die Hochkommata setzen!?
Top
PMEmail Poster
Top
 
Jörg Kruse
#7 Geschrieben am: Mo 9.06.2008, 16:25 (+01:27)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 402
Mitglied seit: 19.12.2004


Es kann schon einen Unterschied machen, ob du Strings oder Integer miteinander vergleichst

Diese beiden Abfragen z.B. ergeben unterschiedliche Ergebnisse:

CODE
SELECT 04 = 4;
SELECT '04' = '4';


Die erste ergibt 1 (wahr), die zweite 0 (falsch)


--------------------
Top
PMEmail PosterUsers Website
Top
 
cr4m0
#8 Geschrieben am: Mo 9.06.2008, 20:39 (+04:13)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 178
Mitglied seit: 30.07.2007


Achso, danke! Daran hab ich nicht gedacht. Aber wenn die Zahlen genau übereinstimmen machen auch die Hochkommata keinen Unterschied.
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/24815

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
PHP/MySQL Entwickler für Projekt gesucht BigRed 63 0 Fr 5.09.2008, 12:05
[MYSQL] ø bei Suche nach o finden MarkusH 99 1 Mi 20.08.2008, 09:10
Suche PHP/MYSQL Programmierer Paidunion 143 0 So 17.08.2008, 12:56
Suche kleinere Jobs (HTML, PHP, MySQL...) Oliver Pester 243 2 Do 14.08.2008, 14:08
Diskussion: Login-Skript mit Sessions, PHP und ... Ayom-Team 163 2 Mo 11.08.2008, 03:33
MySQL Abfrage von einer Tabelle webdoktor 402 19 Sa 9.08.2008, 17:45
MySQL Datenbankoptimierung Coach 185 4 Do 7.08.2008, 05:47
(S) Programmierer PHP MySQL Dachs 97 0 Mo 4.08.2008, 20:48
MySQL Abfrage von zwei Tabellen webdoktor 165 6 Do 31.07.2008, 15:26
MySQL Benutzernamen Coach 152 4 Fr 25.07.2008, 21:53




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]