#1  
Alt 27.04.2014
photopie photopie ist offline
Trollanwärter
Registriert seit: 04.2013
Ort: Österreich
Beiträge: 29
photopie befindet sich auf einem aufstrebenden Ast
Standard einige Benutzerabfragen für PostgreSQL Datenbank

Ich bin von MySQL auf PostgreSQL umgestiegen, da ich festgestellt habe, dass die Abfragen damit (zumindest in meiner Umgebung) deutlich schneller sind.
Manche Benutzerabfragen musste ich jedoch anpassen, da PostgreSQL keine automatische Typumwandlung durchführt und man mit CAST() arbeiten muss.
Vielleicht sind die hier aufgelisteten Abfragen für jemanden nützlich.

Bilder ohne GPS-Koordinaten (MySQL und PostgreSQL)
Code:
SELECT * FROM bilder
  WHERE latitude = '000:00:0000:0' AND longitude = '000:00:0000:0';
Dasselbe, aber nur für Bilder in Unterverzeichnissen, deren Name mit "20" beginnt:
Code:
select b.* from bilder b, filme f 
  where  (latitude = '000:00:0000:0' AND longitude = '000:00:0000:0') 
  and  b.film = f.ukey and f.caption like '20%';
Bilder ohne Ortsangabe (MySQL und PostgreSQL)
Code:
SELECT * FROM bilder
  WHERE land = '-';
Bilder nach Blende (PostgreSQL)
Code:
select * from bilder
  where CAST(blende AS REAL) BETWEEN @text;min. Blendenzahl@
  and @text;max. Blendenzahl@
Bilder nach Brennweite (PostgreSQL)
Code:
select * from bilder
  where CAST (brennweite AS INTEGER) BETWEEN @text;Brennweite Von@
  AND @text;Brennweite Bis@
Bilder nach Brennweite - äquivalent 35mm (PostgreSQL)
Code:
SELECT b.* FROM bilder b, exifdata x
WHERE b.ukey = x.bild AND x.tag = 'focallengthin35mmfilm'
  AND CAST(data AS INTEGER) BETWEEN '@text;Min. Brennweitet@' AND '@text;Max. Brennweite@';
Bilder nach ISO (PostgreSQL)
Code:
SELECT b.* FROM bilder b, exifdata x
WHERE b.ukey = x.bild AND x.tag = 'isospeedratings'
  AND CAST(data AS INTEGER) BETWEEN '@text;Iso-Minimalwert@' AND '@text;Iso-Maximalwert@';
Suche nach Bildformaten

Landscape (PostgreSQL)
Code:
select * from bilder where
 cast(width as REAL) / cast(height as REAL) > 1.0;
Portrait (PostgreSQL)
Code:
select * from bilder where
 cast(height as REAL) / cast(width as REAL) > 1.0;
Panorama - Verhältnis von Breite zu Höhe mindestens 1:1.95 (PostgreSQL)
Code:
select * from bilder where
  (cast(width as REAL) / cast(height as REAL)) > 1.95;
360°x180° - Panorama (PostgreSQL)
Code:
select * from bilder where
  (cast(width as REAL) / cast(height as REAL)) BETWEEN 1.98 AND 2.02;
Diese Abfrage kann auch Bilder anzeigen, welche keine Kugelpanoramen sind, wenn die Abmessungen zufällig auch das Verhältnis Breite:Höhe = 2:1 entspricht.
Da das Verhältnis meist nicht pixelgenau ganz exakt 2:1 beträgt, wird eine Toleranz von +/- 2% berücksichtigt.

Ernst

Geändert von photopie (28.04.2014 um 00:13 Uhr).
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Upgrade von DB"s bei MySQL und PostgreSQL Admin7 SQL im Allgemeinen 2 09.10.2012 08:09
Connect auf Postgresql (9.1) db scheitert Admin7 SQL in Imabas 2 15.05.2012 16:34
Einige Fragen und Anregungen ubit Imabas Allgemein 3 21.02.2010 13:56
Benutzerabfragen Minotaurus007 Imabas Allgemein 5 21.12.2008 23:50
Parameter in der Benutzerabfragen Kai SQL in Imabas 4 03.11.2004 14:42


Powered by vBulletin® Version 3.7.1 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.