MySQL-TutorialIn der Spalte werden Bitoperationen zur Vereinfachung von Eins-zu-vielen-Beziehungen vorgestellt & :
Bitweises UND, die Bits, die beide gleichzeitig 1 sind, werden auf 1 gesetzt. |. :
Bitweises ODER, wenn ein Binärbit 1 ist, dann ist es 1.^ :
Bitweises XOR, die Binärzahl des entsprechenden Wenn die Zahlen unterschiedlich sind, ist das Ergebnis des entsprechenden Bits 1. Wenn beide entsprechenden Bits 0 oder beide 1 sind, ist das Ergebnis des entsprechenden Bits 0.
Prinzip
$a = 6 转化为2进制为 110 $b = 3 转化为2进制为 11 $a & $b即是 110 与 11 将$a和$b中都为1的位设为1,位数不够的补0.即110 与 011 运算结果010,转化为十进制结果为2
varchar
Feld, jeder Monat wird durch ein spezielles Symbol getrennt und gespeichert, zum Beispiel: "1,2,22,65,7"
1, 2, 4, 8, 16, 32, 64, 128, 512, 1024, 2048, 4096
, um ihn darzustellen Es gibt mehrere Monate, die kombiniert und addiert und dann als Wert gespeichert werden können. 1+512+4096=4609
, 4096, speichern. & :
按位与,二进制位同时都为1的位设为1。| :
按位或,二进制位有一个位为1就为1.^ :
按位异或,对应位的二进制数不同时,对应位的结果才为1;如果两个对应位数都为0或者都为1,则对应位的结果为0。
原理
-- 添加一个分类 用 “|” SELECT (4|2|1); --- = 7 -- 去掉一个分类,用“^” SELECT 7 ^ 1; -- 当我们需要查询某个月份的景点时,例如查询3月份的景点,可使用以下语句: SELECT * FROM `spots` WHERE `month` & 4 = 4; -- 当设置某个景点适合某个月份时,例如设置4325的景点适合2月份,可使用下面的语句: UPDATE `spots` SET `month` = `month` | 2 WHERE `id` = 4325 -- 当取消设置某个景点的月份时,可使用下面的语句: UPDATE `spots` SET` month` = `month` ^ 2 WHERE`id`= 4325 -- 查询同时适合多个月份的数据,例如需要查询设置了11,12,1月份的景点,将其三个月份对应的数值加起来,结果为6145,然后使用这个数值进行查询: SELECT * FROM `spots` WHERE `month` & 6145 = 6145 -- 查询只要适合,1,11,12月份其中一个月份的景点就行 SELECT * FROM `spots` WHERE (`month` & 4096 = 4096) or (`month` & 2048 = 2048) or (`month` & 1 = 1)
应用场景
每个景点包含很多属性,例如适合旅游的月份,我们一般的做法可能有两种:
varchar
字段,每个月份之间用一个特殊符号分隔保存,例如:"1,2,22,65,7"
1,2,4,8,16,32,64,128,512,1024,2048,4096
来表示,如果是多个月份,可以相互组合相加,之后存储为一个值。1+512+4096=4609
Diese Technik eignet sich für Eins-zu-viele-Szenarien mit wenigen Attributen. Wenn zu viele vorhanden sind, wird empfohlen, die Beziehungstabelle auszuprobieren. Zu den häufig verwendeten Attributen gehören: Monat, Nachrichtenerinnerungstyp, verschiedene eingeschränkte Typkombinationen usw. Tipps: rrreee
Das obige ist der detaillierte Inhalt vonEinführung von MySQL-Bitoperationen zur Vereinfachung von Eins-zu-Viele-Beziehungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!