| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Erfahrener Benutzer Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse: Anfänger ![]() | 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 ? |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse: Anfänger ![]() ![]() | Info, falls alle Stricke reissen Zitat:
| |
| | |
| | |
| Erfahrener Benutzer | 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 |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 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 |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse: Anfänger ![]() | 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 |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|