Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   In SQL-Abfrage binaer verknuepft abfragen? (https://www.delphipraxis.net/49686-sql-abfrage-binaer-verknuepft-abfragen.html)

alcaeus 14. Jul 2005 13:30

Datenbank: MySQL • Version: 4.0 • Zugriff über: PHP, ist aber egal ;)

In SQL-Abfrage binaer verknuepft abfragen?
 
Hallo ihr,

ich muss ein paar Records aus der Datenbank lesen, die allerdings nicht fuer alle User sichtbar sein sollen (teilweise nur fuer Gaeste, teilweise nur fuer mich, usw.). Nun dachte ich mir, dass ich dafuer ja ein Integerfeld verwenden koennte, und in diesem die Bedingungen binaer abspeichern koennte. Kann ich dies dann auch in einer SQL-Abfrage machen? Im Code sieht das ja so aus:
Code:
if ($access & 8 == 8)
{
  echo "allowed";
}
bzw.
Delphi-Quellcode:
if (access and 8) = 8 then
begin
  ShowMessage('allowed');
end;
Kann ich dies auch in eine SQL-Abfrage einbauen, so dass ich nicht alle Records auslesen und im Code pruefen muss?

Greetz
alcaeus

marabu 14. Jul 2005 13:39

Re: In SQL-Abfrage binaer verknuepft abfragen?
 
Hallo alcaeus,

du hast in MySQL sowohl die logischen (AND, OR, XOR) als auch mathematische Operatoren (DIV, MOD) für deine WHERE-Klausel zur Verfügung.

Freundliche Grüße vom marabu

alcaeus 14. Jul 2005 13:41

Re: In SQL-Abfrage binaer verknuepft abfragen?
 
Zitat:

Zitat von marabu
du hast in MySQL sowohl die logischen (AND, OR, XOR) als auch mathematische Operatoren (DIV, MOD) für deine WHERE-Klausel zur Verfügung.

Super, danke. Ich glaube es wird Zeit dass ich mir eine SQL-Doku suche :lol:

Greetz
alcaeus

alcaeus 14. Jul 2005 15:44

Re: In SQL-Abfrage binaer verknuepft abfragen?
 
Hmm, so ganz trifft es das doch nicht.
Ich hab mittlerweile "&&" gefunden (warum bin ich nicht frueher drauf gekommen :wall:), und habe diese Abfrage:

SQL-Code:
SELECT * FROM toolbars WHERE tobar_perm && 1 <> 0
Es gibt zwei Datensaetze, einmal mit tobar_perm = 2 und einmal mit tobar_perm = 3. Allerdings werden beide Records zurueckgegeben. Ich weiss ja nicht wie MySQL rechnet, aber fuer mich ist 1 && 2 immer noch 0 :?
Das Feld tobar_perm ist ein Integer, kann es daran liegen?

Greetz
alcaeus

WoGe 14. Jul 2005 15:56

Re: In SQL-Abfrage binaer verknuepft abfragen?
 
Hi,

SQL-Code:
SELECT * FROM toolbars WHERE tobar_perm && 1 <> 0
Vielleicht ist die Reihenfolge der Operatoren bei der Abarbeitung falsch

versuch mal
SQL-Code:
SELECT * FROM toolbars WHERE (tobar_perm && 1) <> 0
gruss
wo

alcaeus 14. Jul 2005 16:00

Re: In SQL-Abfrage binaer verknuepft abfragen?
 
Ich brauch definitiv Urlaub. Das bitweise Und ist "&" und nicht "&&" :wall: Damit funktioniert es jetzt auch endlich :)

Vielen Dank fuer eure Hilfe

Greetz
alcaeus

Sharky 14. Jul 2005 16:36

Re: In SQL-Abfrage binaer verknuepft abfragen?
 
Hai alcaeus,

auch wenn in diesem Fall das Binäre UND (&) das beste ist... schaue Dir doch auch einmal die mySQL-Funktion find_in_set an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz