次のようなさまざまな「マスク」で満たされたテーブルがあります。
Type Mask1 Mask2 Mask3
0 fff fff ff
1 aff fff ff
2 aff fff 92
3 001 fff 00
そして基本的に、データベースにクエリを実行し、特定のクエリが一致するかどうかを確認したいと思います。たとえば、a00-111-12です。f
があるところならどこでも(これはすべて 16 進数です) 一致があると言いたいです。したがって、値a00-111-12を取得すると、行 0 と 1 に一致する必要がありますが、2 と 3 には一致しないはずです。行 0 にはすべてのfが表示されるため、値を AND 演算すると同じ値になります。ただし、行 2 でテストすると、Mask3 列の値 92 を 12 で AND すると 12 になるため、AND は機能しませんが、その行を一致させたくないのです。
これは難しい質問だと思います。いくつかの MySQL クエリでは不可能かもしれませんが、テーブル全体を PHP にインポートして、そこから正しい行を見つけることは避けたいと思います。
クエリのアイデアは次のようになります。
SELECT * FROM TABLE WHERE Mask1 = a00 AND Mask2 = 111 AND ...
ただし、Mask1、2、3、またはクエリに送信される値に対して何らかの操作を行う必要があります。
最終的な目標は、一致する行からTypeを取得することです。さらに情報が必要な場合は、お問い合わせください。