Mailinglisten-Archive |
Hi all, ich habe eine Tabelle etwa so test_table: | Nutdaten | Condition1 | Condition2 | aus einer Datenquelle generiere ich ein SELECT-Statement wie folgt: SELECT Nutzdaten FROM test_table WHERE Condition1 = '$qdata1' AND Condition = '$qdata2'; In $qdata1 und $qdata2 gibt es immer Werte. OK - jetzt das Problem: In einer ganzen Reihe von Fällen ist es völlig egal was in $qdata2 steht, es reicht schon $qdata1 zur eindeutigen Bestimmung aus. Da sich immer mal die Condition1 oder Condition2 ändern können, will ich das nicht jedes mal das Script umschreiben, sondern mit einer Datenbank machen, außerdem ist mit unbekannten Condition2 zu rechnen, die mit abgefangen werden sollen. Wie es mysql in der Benutzerverwaltung auch macht, möchte ich, das ein '%' in Spalte Condition2 alle Fälle matcht, egal was aktuell in $qdata2 steht. Beispiel: | Nutdaten | Condition1 | Condition2 | |---------------|-----------------|-----------------| | Hallo | www | xxx | | super | qwq | % | $qdata1 = "qwq"; $qdata2 = "irgendetwas"; SELECT Nutzdaten FROM test_table {???GESUCHTE BEDINGUNG mit $qdata1 AND $qdata2 ??? }; gibt "super" zurück. $qdata1 = "www"; $qdata2 = "irgendetwas"; SELECT Nutzdaten FROM test_table {???GESUCHTE BEDINGUNG mit $qdata1 AND $qdata2 ??? }; gibt "" zurück. $qdata1 = "ww"; $qdata2 = "xxx"; SELECT Nutzdaten FROM test_table {???GESUCHTE BEDINGUNG mit $qdata1 AND $qdata2 ??? }; gibt "Hallo" zurück. Im Prinzip ist es ein umgekehrtes LIKE %, nicht auf Abfrage, sondern auf Datenbankseite. Die Benutzerverwaltung von mysql machts ja auch, also sollte es möglich sein. Meine Lösung bisher ist ... HAVING Condition2 IN('$qdata2', '%' ) geht, aber ich hab so ein ungutes Gefühl dabei. -- Einen erfolgreichen Tag Johannes G. Arlt technik at part2part.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive