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

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 肥仔 閱讀(1316) 評論(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>
            男同欧美伦乱| 美国成人毛片| 玖玖综合伊人| 美女999久久久精品视频| 久久国产欧美| 可以看av的网站久久看| 美女网站久久| 最新亚洲一区| 99国产精品久久久| 亚洲一区二区在线视频| 欧美中文字幕在线观看| 久久婷婷影院| 欧美日一区二区三区在线观看国产免| 欧美性视频网站| 国产亚洲精品一区二555| 黑丝一区二区三区| 99re热这里只有精品视频| 亚洲伊人观看| 欧美大胆人体视频| 一本色道久久综合亚洲精品高清| 亚洲欧美国产高清| 欧美国产日韩精品| 国产一区二区激情| 一本色道久久综合亚洲91| 亚洲综合色激情五月| 久久久天天操| 亚洲私人影院在线观看| 久久女同精品一区二区| 国产精品成人播放| 亚洲高清电影| 久久精品99国产精品酒店日本| 亚洲国产精品va| 欧美一区二区三区免费观看 | 9色porny自拍视频一区二区| 午夜亚洲影视| 欧美特黄视频| 亚洲日本精品国产第一区| 亚洲欧美日韩一区二区三区在线 | 亚洲视频在线播放| 欧美1区2区| 好吊一区二区三区| 欧美一区二区三区四区在线观看地址| 免费91麻豆精品国产自产在线观看| 一本色道久久加勒比88综合| 女女同性精品视频| 黄色成人小视频| 欧美一区二区| 一区二区三区蜜桃网| 欧美激情一区二区三区| 加勒比av一区二区| 久久久久久久国产| 午夜在线一区二区| 国产伦一区二区三区色一情| 一区二区三区精品| 亚洲国产视频直播| 欧美日韩精品一本二本三本| 国产区日韩欧美| 亚洲欧美激情在线视频| 亚洲激情影院| 欧美成人一区二区三区| 亚洲第一在线综合在线| 久久在线播放| 久久一区免费| 亚洲国产日韩欧美一区二区三区| 裸体歌舞表演一区二区 | 欧美人与性动交cc0o| 亚洲麻豆视频| 亚洲黄一区二区三区| 欧美精品国产一区| 亚洲少妇一区| 亚洲伊人观看| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲性图久久| 先锋影音久久| 永久555www成人免费| 欧美大片在线观看一区二区| 美女91精品| 亚洲一区二区av电影| 亚洲一区二区在线播放| 国产视频精品网| 免费亚洲一区| 欧美日韩国产二区| 欧美一区二区日韩一区二区| 久久成人精品电影| 亚洲精品乱码久久久久久日本蜜臀 | 一区二区三区视频免费在线观看 | 韩国久久久久| 欧美激情在线免费观看| 欧美日本亚洲韩国国产| 欧美一级播放| 免费在线看一区| 亚洲无线视频| 久久久久国产精品麻豆ai换脸| 亚洲国产欧美日韩另类综合| 一本不卡影院| 一区国产精品| 中文av一区特黄| 亚洲高清免费| 亚洲一区二区三区在线观看视频 | 正在播放亚洲一区| 国产午夜精品全部视频播放| 欧美激情区在线播放| 国产精品区一区二区三| 免费毛片一区二区三区久久久| 欧美人成免费网站| 久久一区二区三区av| 国产精品久久久久99| 欧美福利专区| 国产亚洲人成网站在线观看| 亚洲日本电影在线| 欧美日韩午夜剧场| 久久久999精品| 中日韩高清电影网| 久久不射电影网| 一区二区三区www| 久久男女视频| 久久久午夜视频| 国产精品美女久久久久av超清| 欧美成人影音| 国产色婷婷国产综合在线理论片a| 亚洲丁香婷深爱综合| 国产亚洲福利| 亚洲视频自拍偷拍| 一本色道88久久加勒比精品| 久久综合九色九九| 久久精品av麻豆的观看方式| 国产精品热久久久久夜色精品三区 | 国产一区二区三区久久| 99视频精品| 99在线精品观看| 欧美精品播放| 亚洲国产精品久久久久秋霞影院| 国内成人精品一区| 香蕉久久一区二区不卡无毒影院| 亚洲一级网站| 国产精品成人久久久久| 一区二区欧美在线| 亚洲在线成人精品| 国产精品日韩精品欧美精品| 一区二区三区四区蜜桃| 亚洲免费视频一区二区| 国产精品美女| 久久av一区二区| 欧美chengren| 日韩视频永久免费| 国产精品va在线| 亚洲男人的天堂在线| 欧美在线看片| 国内偷自视频区视频综合| 久久精品国产亚洲aⅴ| 狼人社综合社区| 亚洲精品午夜| 国产精品啊v在线| 亚洲欧美国产制服动漫| 久久久久久999| 亚洲国产精品一区二区www在线| 欧美 日韩 国产在线 | 浪潮色综合久久天堂| 亚洲国产成人av| 欧美日韩亚洲在线| 欧美亚洲视频一区二区| 欧美激情1区| 亚洲摸下面视频| 激情国产一区二区| 欧美精品一区二区三区很污很色的 | 亚洲人成亚洲人成在线观看| 亚洲毛片在线观看.| 亚洲一区免费观看| 国产综合久久久久影院| 欧美国产日韩亚洲一区| 亚洲欧美国产制服动漫| 欧美成人午夜影院| 亚洲欧美国产日韩中文字幕| 国产综合香蕉五月婷在线| 欧美3dxxxxhd| 午夜精品国产| 亚洲精品一二| 久久午夜羞羞影院免费观看| 亚洲麻豆av| 狠狠爱综合网| 欧美日韩综合一区| 久久综合狠狠| 午夜国产不卡在线观看视频| 亚洲第一色中文字幕| 欧美一区二区三区精品| 亚洲国产精品久久久久秋霞影院| 国产精品黄色| 欧美伦理91| 久久综合激情| 欧美一区二区视频在线观看2020| 亚洲精品免费一区二区三区| 麻豆精品传媒视频| 欧美一级播放| 亚洲尤物视频在线| 夜夜爽99久久国产综合精品女不卡| 国内精品久久久久久影视8| 欧美日韩一区二区三区免费看| 另类激情亚洲| 久久先锋影音| 久久久精品免费视频|