青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

mysql中的set類型

SET是一個字符串對象,可以有零或多個值,其值來自表創建時規定的允許的一列值。指定包括多個SET成員的SET列值時各成員之間用逗號(‘,’)間隔開。這樣SET成員值本身不能包含逗號。

例如,指定為SET('one', 'two') NOT NULL的列可以有下面的任何值:

''

'one'

'two'

'one,two'

SET最多可以有64個不同的成員。

當創建表時,SET成員值的尾部空格將自動被刪除。

當檢索時,保存在SET列的值使用列定義中所使用的大小寫來顯示。請注意可以為SET列分配字符集和 校對規則。對于二進制或大小寫敏感的校對規則,當為列分配值時應考慮大小寫。

MySQL用數字保存SET值,所保存值的低階位對應第1SET成員。如果在數值上下文中檢索一個SET值,檢索的值的位設置對應組成列值的SET成員。例如,你可以這樣從一個SET列檢索數值值:

mysql> SELECT set_col+0 FROM tbl_name;

如果將一個數字保存到SET列中,數字中二進制表示中的位確定了列值中的SET成員。對于指定為SET('a','b','c','d')的列,成員有下面的十進制和二進制值:

SET成員

十進制值

二進制值

'a'

1

0001

'b'

2

0010

'c'

4

0100

'd'

8

1000

 

如果你為該列分配一個值9,其二進制形式為1001,因此第1個和第4SET值成員'a''d'被選擇,結果值為 'a,d'

對于包含多個SET元素的值,當插入值時元素所列的順序并不重要。在值中一個給定的元素列了多少次也不重要。當以后檢索該值時,值中的每個元素出現一次,根據表創建時指定的順序列出元素。例如,假定某個列指定為SET('a','b','c','d')

mysql> CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));

插入值'a,d''d,a''a,d,d''a,d,a''d,a,d':

mysql> INSERT INTO myset (col) VALUES

-> ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

Query OK, 5 rows affected (0.01 sec)

Records: 5  Duplicates: 0  Warnings: 0

當檢索時所有這些值顯示為 'a,d'

mysql> SELECT col FROM myset;

+------+

| col  |

+------+

| a,d  |

| a,d  |

| a,d  |

| a,d  |

| a,d  |

+------+

5 rows in set (0.04 sec)

如果將SET列設置為一個不支持的值,則該值被忽略并發出警告:

mysql> INSERT INTO myset (col) VALUES ('a,d,d,s');

Query OK, 1 row affected, 1 warning (0.03 sec)

 

mysql> SHOW WARNINGS;

+---------+------+------------------------------------------+

| Level   | Code | Message                                  |

+---------+------+------------------------------------------+

| Warning | 1265 | Data truncated for column 'col' at row 1 |

+---------+------+------------------------------------------+

1 row in set (0.04 sec)

 

mysql> SELECT col FROM myset;

+------+

| col  |

+------+

| a,d  |

| a,d  |

| a,d  |

| a,d  |

| a,d  |

| a,d  |

+------+

6 rows in set (0.01 sec)

SET值按數字順序排序。NULL值排在非NULL SET值的前面。

通常情況,可以使用FIND_IN_SET()函數或LIKE操作符搜索SET值:

mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;

mysql> SELECT * FROM tbl_name WHERE set_col LIKE '%value%';

1個語句找出SET_col包含value set成員的行。第2個類似,但有所不同:它在其它地方找出set_col包含value的行,甚至是在另一個SET成員的子字符串中。

下面的語句也是合法的:

mysql> SELECT * FROM tbl_name WHERE set_col & 1;

mysql> SELECT * FROM tbl_name WHERE set_col = 'val1,val2';

1個語句尋找包含第1set成員的值。第2個語句尋找一個確切匹配的值。應注意第2類的比較。將set值與'val1,val2'比較返回的結果與同'val2,val1'比較返回的結果不同。指定值時的順序應與在列定義中所列的順序相同。

如果想要為SET列確定所有可能的值,使用SHOW COLUMNS FROM tbl_name LIKE set_col并解析輸出中第2列的SET定義。

  剛才研究MySQL文檔,發現SET類型的真正含義:

 

  實際上,SET可以包含最多64個成員,其值為一個整數。這個整數

的二進制碼表示該SET的值的哪些成員為真。例如有SET('a','b','c','d')

那么當它們的值為:

 

SET member  Decimal value  Binary value

-----------------------------

a     1        0001

b      2         0010

c      4         0100

d      8         1000

  如果你將9存入某個SET域,那么其二進制值為1001,也就是說這

個值中'a''d'為真。

 

  可以想到,如果這樣的話,大家可以用LIKE命令和FIND_IN_SET()

函數來檢索SET值:

 

mysql> SELECT * FROM tbl_name WHERE set_col LIKE '%value%';

mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;

 

當然,以下SQL語句也是合法的,他們顯得更加簡潔:

 

mysql> SELECT * FROM tbl_name WHERE set_col = 'val1,val2';

mysql> SELECT * FROM tbl_name WHERE set_col & 1;

 

哈哈,這么一來,大家下次控制權限的時候就不用設一個int型,然后

在那里與呀或的,還要另外定義權限的名稱,用SET型字段輕松搞定!!

 

--

來源:.一網深情 bbs.uestc.edu.cn[FROM: 61.157.80.21]

 

posted on 2009-08-06 14:14 肥仔 閱讀(1319) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美日韩视频| 亚洲综合不卡| 在线午夜精品| 在线视频你懂得一区| 欧美极品在线观看| 欧美激情综合亚洲一二区 | 欧美亚洲日本一区| 欧美日韩一区二区三| 亚洲欧洲偷拍精品| 亚洲九九爱视频| 欧美欧美午夜aⅴ在线观看| 亚洲日本成人| 亚洲一本大道在线| 国产精品欧美日韩一区| 亚洲欧美一区二区在线观看| 99国产精品视频免费观看| 久久精品在线| 欧美国产精品v| 日韩一级视频免费观看在线| 欧美日韩免费一区| 一个人看的www久久| 国产精品呻吟| 久久久久久自在自线| 欧美激情a∨在线视频播放| 亚洲精品欧美在线| 欧美三区不卡| 欧美一区二区在线免费观看| 免费久久99精品国产| 免费精品99久久国产综合精品| 伊人久久久大香线蕉综合直播| 美日韩精品视频| 亚洲精品美女久久7777777| 亚洲视频精品在线| 国产三区精品| 欧美电影免费观看高清完整版| 艳女tv在线观看国产一区| 欧美在线观看一区二区| 亚洲成色www8888| 欧美视频二区| 久久久精品国产免大香伊| 久久最新视频| 亚洲视频免费看| 黑人巨大精品欧美一区二区| 蜜月aⅴ免费一区二区三区| 日韩香蕉视频| 老**午夜毛片一区二区三区| 亚洲国产婷婷香蕉久久久久久| 91久久精品美女高潮| 欧美亚洲日本网站| 亚洲精品在线三区| 国产喷白浆一区二区三区| 麻豆视频一区二区| 亚洲一区一卡| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲欧美国产视频| 亚洲综合另类| 久久九九免费| 亚洲一区不卡| 亚洲国产综合91精品麻豆| 国产精品久久久久免费a∨大胸| 久久婷婷一区| 欧美亚洲综合在线| 一本一道久久综合狠狠老精东影业| 牛牛精品成人免费视频| 午夜精品亚洲| 一区二区高清在线观看| 亚洲成人自拍视频| 国产色综合网| 国产精品视频在线观看| 欧美久久综合| 欧美一区二区三区在线播放| 亚洲高清在线| 欧美成ee人免费视频| 久久久国产精品一区二区三区| 国产精品麻豆成人av电影艾秋| 欧美激情亚洲激情| 久久久久9999亚洲精品| 午夜精品影院| 亚洲欧美国产精品桃花| 夜夜嗨av色一区二区不卡| 亚洲激情六月丁香| 久久五月激情| 久久成人精品| 欧美有码在线观看视频| 亚洲精一区二区三区| 亚洲成人在线免费| 亚洲美女诱惑| 亚洲黄页视频免费观看| 欧美国产三级| 欧美激情精品久久久久久蜜臀| 久久久水蜜桃| 亚洲一区三区电影在线观看| 99精品国产一区二区青青牛奶| 亚洲人成小说网站色在线| 雨宫琴音一区二区在线| 在线成人激情| 亚洲国产精品欧美一二99| 亚洲高清一二三区| 亚洲人成亚洲人成在线观看图片| 免费看亚洲片| 免费成人小视频| 欧美韩日亚洲| 欧美视频三区在线播放| 欧美香蕉大胸在线视频观看| 国产精品黄视频| 国产精品美女| 国产日韩一区二区三区| 国内精品视频一区| 亚洲福利视频一区二区| 亚洲破处大片| 一区二区三区久久精品| 亚洲女爱视频在线| 亚洲综合精品四区| 久久免费精品日本久久中文字幕| 快she精品国产999| 欧美激情精品久久久久久黑人| 欧美日韩在线视频一区| 国产精品丝袜91| 激情伊人五月天久久综合| 亚洲日本欧美在线| 亚洲午夜成aⅴ人片| 亚洲砖区区免费| 久久久亚洲国产美女国产盗摄| 欧美国产精品久久| 一区二区精品在线| 久久精品国产在热久久| 欧美精品午夜| 国产午夜亚洲精品不卡| 亚洲欧洲在线免费| 午夜精品久久| 久久久999| 亚洲精品久久7777| 欧美一区二区视频在线观看| 免费成年人欧美视频| 欧美在线观看视频| 欧美国产成人精品| 国产伦精品一区二区三区免费迷| 尤物网精品视频| 中文欧美日韩| 久久久久久久欧美精品| 亚洲理论在线| 久久久之久亚州精品露出| 欧美日韩p片| 尤物在线精品| 欧美一级免费视频| 欧美日韩直播| 亚洲高清在线观看| 久久精品成人| 亚洲精品久久| 美女黄色成人网| 亚洲欧美99| 欧美午夜无遮挡| 亚洲一区bb| 国产亚洲精品久久久久久| 欧美午夜三级| 亚洲欧美高清| 亚洲无亚洲人成网站77777 | 国产精品人成在线观看免费| 夜夜嗨av一区二区三区网站四季av | 欧美激情视频一区二区三区不卡| 久久本道综合色狠狠五月| 国产精品一区二区三区久久久| 亚洲欧美综合另类中字| 中文在线一区| 国产精品免费看| 欧美一区二区三区在线免费观看| 中文网丁香综合网| 亚洲一区免费视频| 国产精品二区三区四区| 亚洲专区一区| 午夜在线精品偷拍| 国产一区二三区| 美女网站在线免费欧美精品| 久久人人爽国产| 亚洲黄色性网站| 亚洲日本黄色| 欧美体内she精视频在线观看| 亚洲无限乱码一二三四麻| 欧美日韩综合一区| 亚洲欧美日韩精品久久久| 亚洲女同同性videoxma| 国产一区二区按摩在线观看| 久久久亚洲精品一区二区三区| 久久久久久久成人| 亚洲人www| 夜夜嗨一区二区三区| 国产精品每日更新| 久久综合亚洲社区| 欧美精品久久久久久久免费观看| 国产精品99久久久久久久女警 | 久久精品亚洲精品| 久久国产欧美| 亚洲精品在线观看视频| 国产精品99久久久久久有的能看| 国产精品一区二区久久| 免费成人网www| 欧美日韩国产黄| 亚洲欧美偷拍卡通变态| 久久国产精品一区二区三区| 亚洲肉体裸体xxxx137|