![]() |
Datenbank: MySQL • Zugriff über: PHP
Innerhalb eines select's prüfen ob Spalte existiert?
Ich möchte in einer SQL Abfrage verschiedene Felder benutzen, die aber nicht notwendigerweise existieren müssen (verschiedene Datenbanken). Nun wollte ich fragen ob man z.B. im WHERE-Clause eine Abfrage vorschalten kann: Existiert Spalte->ja, dann prüfe ob Spalte > 100. Sonst gibts ja immer den Fehler unknown column...
also so was: WHERE... (IF EXISTS( Spalte1, 'SPALTE1>100')) //edit: ich weiß dass es besser wäre eine homogene Tabellenstruktur zu haben, nur Kunde ist König... :wall: |
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Hi,
hmmm... wüsste keine direkte Lösung.. Schreib doch selber ne Funktion die das prüft:
Delphi-Quellcode:
ist zwar nicht schön, weil du trotzdem nen sql-error auslöst, aber der wird nicht gezeigt...
function teste_ob_spalte_da($spalte, $tabelle)
{ $sql = ' SELECT '.$spalte.' FROM '.$tabelle; mysql_query($sql); return !(mysql_error()); } [edit]nicht getestet, sollte aber gehen[/Edit] Gruß |
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Das habe ich auch schon versucht ;) aber bei meinem Framework ist das Problem dass die SQL-Statements gespeichert aus der Datenbank kommen können, bzw im Script definiert werden bevor die Konfiguration der Datenbank geladen wird. hatte sonst schon "DESCRIBE tabelle spalte" im Kopf.
|
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Min, moin,
würde eine Select-Anweisung senden die keine Datenmenge zurückgibt und nur die vorhandene Feldliste ausgibt.
SQL-Code:
Die Feldnamen könnten in eine Stringliste eingelesen werden. Daraus kann dann die eigentliche SQL gebaut werden.
SELECT * FROM MyTable WHERE 1=2
Grüße // Martin PS: Ist nicht schön, aber DB-unabhängig. |
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Kannst Du das nicht vorab in PHP prüfen?
![]() |
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Ich kenn mich jetzt nicht so mit MySQL aus, aber in MSSQL gibt es Systemtabellen, aus welchen man das ganz einfach auslesen kann...
Bei MySQL wird es nicht viel anders sein. Daraus macht man dann einfach ne SP, da nicht jeder Rechte auf die System Tabellen erhalten sollte. fertig. Bye Christian |
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Danke für die ganzen Tipps, aber sie haben alle gemeinsam:
- dass eine MySQL Verbindung existieren muss (was nicht der FAll ist) - dass ein PHP Skript die Abfrage zusammenbaut (was nicht sein muss, Statement kann aus der DB kommen, wenn dann eine Verbindung existiert) Ablauf: - laden der wichtigsten SQL-Statements aus einer Datei - laden der Datenbankverbindungsdaten - Herstellen der Verbindung - Abfragen von weiteren SQL-Statements aus der DB // ich lade jetzt je nach Projekt die passenden SQLs nach. Geht auch, erfordert nur mehr Organisation |
Re: Innerhalb eines select's prüfen ob Spalte existiert?
Zitat:
Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz