php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.09.2011, 16:38  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard [Erledigt] "Between" bei den gängigen RDBMS vorhanden ?

Hallo,

ich habe gemerkt, dass ich bei einer Zeitspannenabfrage den Operator "between" benötige oder alternative mit vielen If´s die Query verklausuliere.

Nun soll die Applikation jedoch nicht nur auf dem RDBMS MySQL laufen sondern insgesamt auf folgenden:

- Oracle
- Postgres
- MSSQL
- MySQL
- SQLite

Jetzt habe ich schon gegoogelt und für jede DBMS Googlesuchtreffer gefunden mit dem Einsatz dieses Operators.

Ich möchte mich hier jedoch absichern, dass ich ganz ohne Furcht auch den "between" Operator verwenden kann, da er ein "quasi Standard" ist.

Außerdem habe ich auf allg. Seiten zur SQL Syntax (http://www.techonthenet.com/sql/between.php) auch diesen Operator gefunden, so dass ich denke, dass er so gut wie in jedem RDBMS vorhanden sein sollte.

Da ich ihn z.B. aus PHP aber nicht kenne, geht es nur um eine "Absicherung".

Also kann man ihn gefahrlos für meine Ziele verwenden ?
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.09.2011, 16:48  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
... oder alternative mit vielen If´s die Query verklausuliere.
Info, falls alle Stricke reissen

Zitat:
... Dies ist äquivalent zu dem Ausdruck (min<= expr AND expr<= max), sofern alle Argumente vom selben Typ sind ...
http://dev.mysql.com/doc/refman/5.1/...operators.html
hausl ist offline   Mit Zitat antworten
Alt 14.09.2011, 17:09  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.233
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Davon abgesehen ist das Ansi-Standard. http://www.w3schools.com/SQL/sql_between.asp
Obgleich das nicht von jedem DB-System perfekt umgesetzt ist.

Fallstricke für Unterschiede der RDBMS:
- Propritären Datentypen. Oracle beispielsweise akzeptiert bei Datümern meist nur die Umwandlung per to_date-Funktion, wohingegen andere RDBMS damit wiederum nicht soviel anfangen können.
- Standard-Datentypen. Einige RDBMS akzeptieren, wenn eine numerische Spalte mit einem String-Wert vergleichen wird und machen automatisch eine Typumwandlung, also "WHERE spalte='1711'" geht durchaus. Manche RDBMS hassen sowas wie die Pest und werfen dir Fehler.
- DDL (CREATE TABLE usw.) ist schlichtweg bei jedem RDBMS mehr oder minder verschieden. Gleiches gilt für die Abfrage der Datenbankstrukturen. MySQL hat ein "Information_Shema" und "SHOW TABLES" usw. Andere RDBMS wieder was anderes. Gleiches gilt auch für stored procedures, Trigger, Foreign-Key-Constraints....
- Funktionen und Co. Durchaus unterschiedlich benamst, unterschiedliche Funktionssets.
- NULL-Handling. Einige RDBMS akzeptieren "WHERE spalte = NULL". Oracle mag das absolut nicht und mag nur "WHERE spalte IS NULL" nach meiner Erfahrung.
- Paging. Bei Oracle beispielsweise "where rownum....". Bei Mysql beispielsweise "LIMIT ...."

So gibt es sicher noch vieles weiteres, was im Detail unterschiedlich ist. Solange es aber im Ansi steht, kann man auch meistens davon ausgehen, dass es alle RDBMS verstehen. Zumindest lässt sich leicht googlen nach "Oracle ANSI Kompatibel"
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 14.09.2011, 17:17  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Da könnte beispielsweise Doctrine interessant sein. Doctrine abstrahiert die SQL-Syntax in einer eigenen Syntax zur Formulierung von Queries (DQL). Diese Syntax wird dann für das jeweilige Ziel-DBMS „kompiliert“.

- http://www.doctrine-project.org/docs...-language.html
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 14.09.2011, 19:24  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Wow mepeisen, so viel Einsatz, Details & Tiefgang hab ich gar nicht erwartet.
Danke !

@mermshaus
Ich nutze derzeit ZendDB als SQL Schnittstelle.
Dementsprechend kann ich bereits schnell zwischen den verschiedenen Adaptern wechseln.

Nur ist dieser "wechsel" ebend nur möglich, wenn ich nicht viele "custom statements" mit einbringe, sondern bei den Methoden bleiben, die mir ZendDB bereits anbietet.



Daher ruhrt auch meine Unsicherheit bei diesem - bisher kaum verwendeten - quasi ANSI Standard Statement.
Bei der o.g. if Abfrage von hausl hatte ich nämlich Angst, dass bei den verschiedenen RDBMS eine unterschiedliche Syntax vorherrscht.

Geändert von dreamcatcher (14.09.2011 um 19:30 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 14.09.2011, 23:51  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Ich habe mir meinen Verwendungszweck ebend aufgezeichnet und nun fällt mir die Lösung ein wie Regentropfen vom Himmel.

hausls Methode kann klasse verwendet werden, einfach zwei Mal ->where() und das wars schon.

Ich weiß gerade nicht warum ich dort kurzzeitig gehangen habe...

Ganz interessant zu diesem Thema:
http://stackoverflow.com/questions/3...ween-and-limit
dreamcatcher ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Prüfung ob Wert bereits in DB vorhanden (case sesitive?!) MaNuu PHP Einsteiger 34 04.08.2011 10:08
[Erledigt] MySQL - Prüfen ob Datensatz bereits vorhanden wenn nicht eintragen wooha PHP Einsteiger 10 19.04.2011 14:08
WHERE IN () soll nicht vorhanden sein. Alucard Datenbanken 8 31.01.2010 17:31
Problem beim Überprüfen ob Datei schon vorhanden ist Silent PHP Tipps 2009 15 29.12.2009 15:11
MY-SQL Abfrage nach Daten aus Tabelle 1 die in Tabelle 2 nicht vorhanden sind triple81 Datenbanken 1 25.12.2009 22:46
Überprüfen ob vorhanden und ob ein feld einen bestimmten wert hat setech Datenbanken 1 17.12.2009 09:40
[Erledigt] MYSQL+PHP prüfen ob Wert schon vorhanden Pascalus PHP Tipps 2009 8 20.10.2009 12:38
PHP Formular mit Daten füllen wenn bereits vorhanden Toasti85 PHP Tipps 2009 2 27.03.2009 11:33
div id vorhanden abfragen per javascript nico65 JavaScript, Ajax und mehr 8 13.11.2008 18:11
Abfrage ob email adresse schon vorhanden ist TeazY PHP Tipps 2008 10 16.12.2007 12:22
Bilder löschen die öffter vorhanden sind?! Peoples PHP Tipps 2006 6 28.05.2006 19:34
prüen ob url aus txt vorhanden lord nacon PHP Tipps 2005-2 12 16.08.2005 19:53
Prüfe ob Ordner vorhanden PHP Tipps 2005 8 17.05.2005 22:53
[Erledigt] Tabelle schon vorhanden? Datenbanken 2 19.12.2004 10:39
prüfen ob eintrag vorhanden ist Datenbanken 2 06.10.2004 15:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum