我被困在某处需要你的指导,基本上我使用colomn
向单bit-wise operator OR(|)
插入多个值,我的表结构就像
我正在插入工作日,例如1 for sunday
,2 from monday
,4 for tuesday
,8 for wednesday
,等等pipe sign(|)
分隔{{1}它会像sunday
那样插入,但是当它插入到表格时,它会显示为
现在我想知道如何选择并显示我插入的确切值以及如何使用monday
和1|2
更新它?
我已经使用了这个查询php(codeigniter)
,它通过求和所有解码值得到结果,例如5为1 | 4,3为1 | 2,但是现在如何将它转换为插入类型,如1 | 2为3和1 | 4为5等等...
答案 0 :(得分:1)
$column&(1<<$day)
如果那天不在列中,则将为0
;如果该日在php中的列中,则为1<<$day
。
您不需要使用二进制类型。 Tinyint未签名就足够了。你可以像这样插入
(1|2)
在php中,要将其转换为您想要的格式,
echo '(';
$sep=0;
for($a=1;$a<=$column;$a<<=1)
if($column&$a){
if($sep) echo '|';
else $sep=1;
echo $a;
}
echo ')';