Hey Männer und Frauen,
mich beschäftigt folgendes Problem:
Ich habe 3 Checkboxen, welche ein Filter für die MySQL Abfrage darstellen. Wie überprüfe ich in MySQL ob der Datensatz die Anforderungen erfüllt?
Als Beispiel:
Checkbox 1 & 3 sind aktiv => 101 (binär) => 5 (dezimal)
Datensatz 1: 4 (dezimal) => 100 (binär) => ungültig
Datensatz 2: 7 (dezimal) => 111 (binär) => gültig
Ist das in MySQL überhaupt möglich oder muss ich das in PHP machen!?? 🙁
Liebe Grüße,
Simon
SELECT
CONV( 21, 10, 2 ) AS att,
CONV( 17, 10, 2 ) AS cbx
FROM gasthaus
HAVING att >= cbx
LIMIT 0 , 30
🙂 das gefällt mir! [und beiträge können hier wohl nicht gelöscht werden... doppelt gepostet]
Klingt irgendwie unnötig umständlich, muss es denn unbedingt binär sein?
Warum nicht Checkbox 1+3 aktiv -> "1,3" als String in der DB -> FIND_IN_SET Funktion.. nur mal als eine von vielen möglichen Alternativen 😉
achtung, halt dich fest... die echte Lösung (oben stimmt nicht) ist noch umständlicher! 😃 - aber... sie funktioniert! ^^
SELECT CONV(attribut, 10, 2 ) - CONV( 18, 10, 2 ) AS cbx
FROM gasthaus
HAVING cbx NOT LIKE '%9%'
gut, bei drei Checkboxen lass ich noch mit mir reden, was aber, wenn du 15 Checkboxen hast!?? - du hast Recht, ich hätte das ganze auch mit "string-gefummel" machen können. 😉 Aber kennst du das, wenn man sich was in den Kopf gesetzt hat und dann auch wissen will, ob es funktioniert!?? - Andere Möglichkeit wäre gewesen, pro Checkbox eine Spalte zu machen... 🙂