{"id":261,"title":"\u4e00\u79cd\u7cbe\u5999\u7684\u6570\u636e\u67e5\u8be2\u4e0e\u5b58\u50a8\u65b9\u5f0f","good":0,"bad":0,"hit":2374,"created_at":"2017-03-10 17:29:33","content":"

\u5047\u5982\u4e00\u79cd\u5546\u54c1\u4e0a\u6709\u8fd9\u6837\u51e0\u4e2a\u968f\u673a\u6807\u7b7e\u5c5e\u6027\uff1a\u3010\u56fd\u5916\u3011\u3010\u7f8e\u56fd\u3011\u3010\u8fdb\u53e3\u3011\u3010\u7ea2\u8272\u3011\u3010\u7eff\u8272\u3011<\/p>

\u5047\u5982\u8fd9\u51e0\u4e2a\u5c5e\u6027\u662f\u56fa\u5b9a\u7684\uff08\u5c5e\u6027\u4e2a\u6570\u4e0d\u662f\u5f88\u591a\uff09\uff0c\u6211\u4eec\u53ef\u4ee5\u7ed9\u4ed6\u7f16\u4e2a\u53f7\uff1a<\/p>

1\u56fd\u59162\u7f8e\u56fd4\u8fdb\u53e38\u7ea2\u827216\u7eff\u8272<\/p>

\u5047\u5982A\u7684\u5c5e\u6027\u4e3a\u56fd\u5916\uff0c\u7f8e\u56fd\uff0c\u7eff\u8272\uff0c\u5219\u5c06\u5176\u5c5e\u6027\u5b58\u4e3a19\uff081+2+16\uff09<\/p>

\u5047\u5982B\u7684\u5c5e\u6027\u4e3a\u56fd\u5916\uff0c\u7f8e\u56fd\uff0c\u7ea2\u8272\uff0c\u5219\u5c06\u5176\u5c5e\u6027\u5b58\u4e3a11\uff081+2+8\uff09<\/p>

\u5982\u679c\u8981\u67e5\u540c\u65f6\u5177\u6709\u56fd\u5916\uff0c\u7f8e\u56fd\u5c5e\u6027\u7684\u5546\u54c1\uff0c\u53ef\u4ee5\u7528(\u5b57\u6bb5\u540d&3)=\u5b57\u6bb5\u540d\u8fd9\u79cd\u4f4d\u8fd0\u7b97\u65b9\u5f0f\uff0c3\uff08\u53731\u56fd\u5916+2\u7f8e\u56fd=3\uff09<\/p>

<\/p>

\u9644\u4e24\u79cd\u89e3\u8fd9\u79cd\u4ee5\u548c\u5b58\u50a8\u7684\u65b9\u6cd5\uff1a<\/p>

 \/\/\u5c061\uff0c2\uff0c4. \u3002\u3002\u3002\u8fd9\u79cd\u89c4\u5f8b\u5b58\u50a8\u7684\u6750\u8d28\uff0c\u624b\u5bf8\u7684\u548c\u8fd8\u539f\u4e3a\u7531\u54ea\u4e9b\u6570\u636e\u76f8\u52a0\u5f97\u51fa\u7684\uff1bfunction sumReduction($v){    $size_all=(string)(decbin($v));\/\/\u548c    $size_all=strrev($size_all);    $l=strlen($size_all);    $gs='';    $arr=array();    for($i=0;$i<$l;$i++){        $d=(int)substr($size_all,$i,1);        \/\/echo $d.'<br\/>';        $m=pow(2,$i);        $gs+=$d*$m;        if($d>0){            array_push($arr,$m);        }    }    return $arr;}\tfunction extract_binary($input) {\t    \/\/\u6570\u5b57\u8f6c\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32\t    $string = decbin($input);\t    \/\/\u7ffb\u8f6c\u5b57\u7b26\u4e32        $string = strrev($string);        \/\/\u5b57\u7b26\u4e32\u62c6\u6210\u6570\u7ec4\t    $values = str_split($string);\t    \/\/\u8fc7\u6ee4\u6389\u6570\u7ec4\u4e2d\u76840\uff0c\u53ea\u5269\u4e0b1\uff0c\u5143\u7d20\u7d22\u5f15\u4e0d\u53d8        $values = array_filter($values, function($value) {            return $value;        });        \/\/\u628a\u5269\u4e0b\u7d22\u5f15\u53d6\u51fa        $keys = array_keys($values);        \/\/\u7d22\u5f15\u662f\u51e0\uff0c\u5c31\u662f2\u7684\u51e0\u6b21\u65b9        $segments = [];        foreach ($keys as $k) {            $segments[] = pow(2, $k);        }        return $segments;    }<\/p>

<\/p>

<\/p>

\u4ee5\u4e0a\u7684\u65b9\u5f0f\u5c5e\u5408\u5c5e\u6027\u4e0d\u591a\uff0c\u4e14\u56fa\u5b9a\u7684\u60c5\u51b5\uff1b<\/p>

<\/p>

\u53e6\u5916\u53ef\u4ee5\u7528\uff1a<\/p>

mysql\u4e2dFIND_IN_SET\u7684\u4f7f\u7528\u65b9\u6cd5<\/p>

FIND_IN_SET(str,strlist)\u51fd\u6570<\/p>

str \u8981\u67e5\u8be2\u7684\u5b57\u7b26\u4e32<\/p>

strlist \u5b57\u6bb5\u540d \u53c2\u6570\u4ee5\u201d,\u201d\u5206\u9694 \u5982 (1,2,6,8)\/\/\u5b58\u50a8\u7684\u6570\u636e\u683c\u5f0f\uff0c\u524d\u540e\u4e0d\u8981\u7528\u9017\u53f7\uff0c\u662f\u4e00\u79cd\u96c6\u5408\u7684\u65b9\u5f0f\u67e5\u8be2\uff0c\u975e\u5e38\u65b9\u4fbf\uff0c\u9002\u5408\u5c5e\u6027\u5f88\u591a\u7684\u60c5\u51b5<\/p>

\u67e5\u8be2\u5b57\u6bb5(strlist)\u4e2d\u5305\u542b(str)\u7684\u7ed3\u679c\uff0c\u8fd4\u56de\u7ed3\u679c\u4e3anull\u6216\u8bb0\u5f55<\/p>

\u4e0b\u9762\u4e3e\u4f8b\u8bf4\u660e<\/p>

test\u8868\u4e2d\u6709\u5982\u4e0b\u5b57\u6bb5\u53ca\u503c<\/p>

<\/p>

\u4e0b\u9762\u6211\u60f3\u67e5\u8be2area\u4e2d\u5305\u542b\u201d1\u2033\u8fd9\u4e2a\u53c2\u6570\u7684\u8bb0\u5f55<\/p>

SELECT * from test where FIND_IN_SET('1',area)<\/p>

<\/p>

<\/p>

\u8fd8\u6709\u4e00\u79cd\u7b28\u529e\u6cd5\u5c31\u662f\u4ee5(,1,2,4,8,)\u8fd9\u79cd\u524d\u540e\u6709\u9017\u53f7\u7684\u65b9\u5f0f\u5b58\uff0c\u67e5\u7684\u65f6\u5019\u7528like '%,1,%'\u8fd9\u79cd\u65b9\u5f0f<\/p>"}