MySQL decimális-bináris konverzió
Üdvözletem mindenkinek, új vagyok, jöttem hülyeségeket kérdezni. :)
Van egy user táblám, amiben egy integer mező tárolja a júzer jogosultságait. Az integer bitjei jelzik az egyes jogokat (1-0). Így egyszerűbbnek tűnt implementálni, mert amúgy vagy tizennyolc plusz mező kellene.
Igen ám, de lehet-e a MySQL-től egy integer értéket bináris formában lekérni? Mármint pl: 01010011. Ugyanis addig rendben van, hogy lekérdezem és PHP-ban decbin() segítségével átkonvertálom, de most WHERE-rel kéne szűrnöm.
üdv
Csiga
■ Van egy user táblám, amiben egy integer mező tárolja a júzer jogosultságait. Az integer bitjei jelzik az egyes jogokat (1-0). Így egyszerűbbnek tűnt implementálni, mert amúgy vagy tizennyolc plusz mező kellene.
Igen ám, de lehet-e a MySQL-től egy integer értéket bináris formában lekérni? Mármint pl: 01010011. Ugyanis addig rendben van, hogy lekérdezem és PHP-ban decbin() segítségével átkonvertálom, de most WHERE-rel kéne szűrnöm.
üdv
Csiga
A CONV() függvénnyel tudsz
Összességében sokkal többet vesztesz komplexitásban és erőforrásigényben, mint amit nyersz az elenyésző helymegtakarítással. A relációs adatbázis lényegét veszted el vele. Én azt javaslom, tárold el mezőnként, ahogy illik.
Köszi
SET?
Bitwise functions
orulok hogy azert valakinek
ps: azt azert erdemes tudni ez a megoldas lassabb lehet, mint a SET-es (a kulon oszlopok felvitelenel nem biztos, mert az indexek számossága(cardinality) annyira alacsony lenne, hogy nem lenne gyorsabb a kereses mint 1 full table scan.)
a mysql SET ugyanugy egy bitmap implementacio belul, csak bizonyos esetekben tud indexet is hasznalni, tehat bizonyos esetekben lehet gyorsabb mint a sajat bitmap implementacio:
http://dev.mysql.com/tech-resources/articles/mysql-set-datatype.html
http://dev.mysql.com/doc/refman/5.1/en/set.html
talan a fejleszto szamara lehet kenyelmesebb, hogy nem bitekkel kell buveszkedni kozvetlenul.
Tyrael
Mert lamer vagyok az SQL-hez,