MYSQL数値の指定した位置のビットが"1"かどうかを判断したいのですが MYSQLで十進数で与えられた数字を二進数で考えて右から指定した位置のビットが"1"かどうかを判断したいのですが 誰か分かる方おしえていただけますでしょうか。 例) 10進数の"10" (2進数だと"1010") 右から1ビット目を指定して"0"を取得したい。
2012年03月12日02:24 カテゴリSQLDB2 for IBM i SQL でビット列を評価する (MySQL と DB2 のビット演算の違い) SQL で二進表現されたビット列に対しての評価を行うことができます。 具体的に言うと、何ビット目が 1 か 0 を判定することができるということです。先日紹介した『ぐんぐん実力がつく! 逆算式SQL教科書』から見てみましょう。(P.129 からの例です) 5 という数字は二進数で 00000101 になります。 この 8桁の 0 か 1 について、各桁ごとに SQL で判定ができる、ということなんですね。 MySQL での実行例は ↓ のようになります。 それぞれ一番右の 1桁目から左に向かって 4番目の値までを判定する SQL になっています。 SELECT 5 & 1; SELECT 5>>1 & 1; SELECT 5>>2 & 1
key テーブルにアクセスするために使ったindexを示す。 ちなみに、possible_keysは「使える候補」で、実際につかったかどうかはkeyの値を見る。 key_len 選択されたキーの長さ。 インデックスのキー長が短いほうが高速になるので、迷ったら長さの短いほうにインデックスをつけるといい。 rows selectの取得件数の見積もり。 ざっくりとしたものなので、where句次第ではもっと少ない件数が返ってくることもある。 extra ほかに使用している条件などがあれば、ここに出力される。 チューニング方法の例 type=null かつ key=null の場合 →インデックスが張られてない&テーブルのフルスキャンが行われている。 where条件で使うカラムにインデックスを張る。 もしくは、インデックスが張られたカラムをwhere条件の中に追加する。 extra=Using fi
エグゼクティブサマリ PHP 5.5.21、PHP 5.6.5 以降、PHPにPDO::MYSQL_ATTR_MULTI_STATEMENTSというオプションが追加され、PDO+MySQLの組み合わせで、SQLの複文を禁止できるようになった。この設定はSQLインジェクションの緩和策として有効である。 はじめに 2013年12月に公開した PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能 にて、PDOとMySQLの組み合わせで、SQLインジェクションの文脈で複文呼び出しが可能であることを報告していましたが、その後のPHPのバージョンアップで、複文実行を禁止するオプションが追加されていましたので報告します。 対象のバージョンは以下の通りです。 PHP 5.5.21 以降 PHP 5.6.5 以降 全ての PHP 7.0、7.1 前述の記事を書いた後、3大
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く