was schreibt man für "beinhaltet" in einer sql abf

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
yks
Mitglied
Beiträge: 1295
Registriert: 10.07.2004 02:31

was schreibt man für "beinhaltet" in einer sql abf

Beitrag von yks »

hallo,

wenn ein feld einen textinhalt hat, den ich aber nicht kenne, wie kann ich per sql-abfrage das finden (zb bzgl der signatur) ?
also wie sage ich, das feld 'beinhaltet irgendwas' ?

danke + viele grüße, yks
Mit subsilver2 macht es noch viel mehr Spaß ! :)
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Re: was schreibt man für "beinhaltet" in einer sql

Beitrag von MagMo »

Hi,
yks hat geschrieben:...also wie sage ich, das feld 'beinhaltet irgendwas' ?
so:

Code: Alles auswählen

  $sql = "SELECT *
               FROM tabelle_xyz 
               WHERE feld_xyz LIKE '%" . $SuchBeg . "%'";
Wobei du tabelle_xyz natürlich mit der zu durchsuchenden Tabelle und feld_xyz mit dem zu durchsuchenden Feld ersetzen musst. Die Variable $SuchBeg enthält deinen Suchbegriff.

Grüße
MagMo
Benutzeravatar
yks
Mitglied
Beiträge: 1295
Registriert: 10.07.2004 02:31

Beitrag von yks »

hi magmo,

dank dir, wobei noch etwas unklar bleibt :

zum einen habe ich ja keinen festen suchbegriff, ich will zb nur wissen, wer eine signatur überhaupt hat, weiß aber natürlich nicht was drin steht.
dh, ich weiß nur, daß das feld etwas 'beinhaltet', aber nicht, ob zb zahlen oder text.

die abfrage :

Code: Alles auswählen

SELECT * FROM teeest_users WHERE user_website LIKE '%suchbegriff%'
kenne ich.

überlege gerade, was der unterschied zu deiner abfrage ist :

Code: Alles auswählen

$sql = "SELECT * FROM tabelle_xyz WHERE feld_xyz LIKE '%" . $SuchBeg . "%'";
die noch 2 punkte und leerräume jeweils davor und danach mehr hat ?

viele grüße, yks
Mit subsilver2 macht es noch viel mehr Spaß ! :)
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
yks hat geschrieben:...überlege gerade, was der unterschied zu deiner abfrage ist...
Der Unterschied ist, dass bei deiner Abfrage der Suchbegriff fest in der Abfrage vorgegeben ist, in der von mir geposteten Abrfrage ist der Suchbegriff variabel (je nach Inhalt der Variablen).
yks hat geschrieben:zum einen habe ich ja keinen festen suchbegriff, ich will zb nur wissen, wer eine signatur überhaupt hat, weiß aber natürlich nicht was drin steht.
Ach so war das gemeint. Nimm folgendes:

Code: Alles auswählen

SELECT * FROM teeest_users WHERE user_website != ''
Grüße
MagMo
Benutzeravatar
yks
Mitglied
Beiträge: 1295
Registriert: 10.07.2004 02:31

Beitrag von yks »

bingo, das ist es :) danke :)
in der von mir geposteten Abrfrage ist der Suchbegriff variabel (je nach Inhalt der Variablen).
hast du vielleicht noch ein beispiel dafür ? :-?
*verstehe noch nicht ganz den unterschied zu LIKE '%suchbegriff%'

viele grüße, yks
Mit subsilver2 macht es noch viel mehr Spaß ! :)
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
yks hat geschrieben:hast du vielleicht noch ein beispiel dafür ? :-?
*verstehe noch nicht ganz den unterschied zu LIKE '%suchbegriff%'
Ein ganz einfaches Beispiel:
Wenn du mehrere Begriffe suchts, dann must du den Code entweder mehrfach schreiben und aufrufen:

Code: Alles auswählen

$sql = "SELECT * FROM teeest_users WHERE user_website LIKE '%suchbegriff1%'";
...Datenbankabfrage...
$sql = "SELECT * FROM teeest_users WHERE user_website LIKE '%suchbegriff2%'";
...Datenbankabfrage...
$sql = "SELECT * FROM teeest_users WHERE user_website LIKE '%suchbegriff3%'";
...Datenbankabfrage...
...usw...
oder
du gestalltest das ganze variabel, z.B. so:

Code: Alles auswählen

function suche($SuchBeg)
{
 $sql = "SELECT * FROM tabelle_xyz WHERE feld_xyz LIKE '%" . $SuchBeg . "%'";
 ...Datenbankabfrage...
}
dann brauchst du für die einzelnen Suchbegriffe nur noch die Funktion aufrufen:

Code: Alles auswählen

suche('suchbegriff1');
suche('suchbegriff2');
suche('suchbegriff3');
...usw...
Der Unterschied liegt dadrin, dass der letzte Code erheblich flexibler einsetzbar ist als der erste, der immer nur für ein Suchbegriff gilt. Funktionieren tun beide Codearten aber auf diese selbe Art und Weise.

Grüße
MagMo
Antworten

Zurück zu „Coding & Technik“