SELECT aaa103, aaa102 FROM aa10 WHERE aaa100 = ~'AKC022~' 

解决方案 »

  1.   


    我试了一下 ,这计算出来的值是相等的:mysql> select ~0;
    +----------------------+
    | ~0                   |
    +----------------------+
    | 18446744073709551615 |
    +----------------------+
    1 row in set (0.16 sec)mysql> select  ~'AKC022~';
    +----------------------+
    | ~'AKC022~'           |
    +----------------------+
    | 18446744073709551615 |
    +----------------------+
    1 row in set, 1 warning (0.00 sec)
      

  2.   


    其实就是,比如0,那么~0 =  18446744073709551615,那么这数字其实就是 二进制的 1111111111111111111111111111111111111111111111111111111111111111 ,共64位。mysql> select ~0;
    +----------------------+
    | ~0                   |
    +----------------------+
    | 18446744073709551615 |
    +----------------------+
    1 row in set (0.00 sec)mysql> select bin(0);
    +--------+
    | bin(0) |
    +--------+
    | 0      |
    +--------+
    1 row in set (0.00 sec)mysql> select bin(18446744073709551615);
    +------------------------------------------------------------------+
    | bin(18446744073709551615)                                        |
    +------------------------------------------------------------------+
    | 1111111111111111111111111111111111111111111111111111111111111111 |
    +------------------------------------------------------------------+
    1 row in set (0.01 sec)mysql>