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

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 肥仔 閱讀(1317) 評論(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>
            麻豆av福利av久久av| 亚洲欧美视频一区| 欧美激情视频在线播放| 免费成人高清视频| 欧美激情欧美狂野欧美精品 | 久久精品国产精品亚洲综合| 午夜精品免费在线| 久久久精品久久久久| 久久久久亚洲综合| 亚洲国产欧美一区| 亚洲国产精品尤物yw在线观看| 亚洲精品免费观看| 性做久久久久久久久| 久久久伊人欧美| 欧美另类女人| 国产色爱av资源综合区| 在线成人免费视频| 一区二区精品国产| 国产精品多人| 黄色av成人| 在线综合视频| 狂野欧美一区| 一区二区免费在线播放| 欧美一区午夜视频在线观看| 欧美精品在线免费观看| 国产曰批免费观看久久久| 亚洲人成网站精品片在线观看| 亚洲在线视频观看| 欧美大片一区二区| 羞羞色国产精品| 欧美日韩专区| 最新成人av网站| 久久嫩草精品久久久精品一| 日韩视频久久| 欧美本精品男人aⅴ天堂| 国产一区二区高清视频| 亚洲欧美激情诱惑| 亚洲精品视频中文字幕| 老色鬼精品视频在线观看播放| 国产精品亚洲一区| 亚洲天堂免费在线观看视频| 亚洲第一在线综合网站| 久久精品视频在线观看| 国产日韩在线不卡| 午夜久久久久| 一级成人国产| 欧美日韩无遮挡| 91久久极品少妇xxxxⅹ软件| 久久久国际精品| 亚洲欧美中文日韩在线| 国产精品成人在线观看| 亚洲视频导航| 99re在线精品| 欧美色视频一区| 亚洲色图在线视频| 日韩亚洲欧美一区| 欧美性大战久久久久久久蜜臀| 亚洲精品视频啊美女在线直播| 久久手机精品视频| 久久精品亚洲精品国产欧美kt∨| 国产精品视频精品视频| 午夜亚洲一区| 午夜精品免费在线| 国产亚洲福利| 老妇喷水一区二区三区| 久久久久久高潮国产精品视| 国产一区二区按摩在线观看| 久久九九久久九九| 久久天天躁狠狠躁夜夜爽蜜月| 国内在线观看一区二区三区| 久久一区免费| 欧美成人午夜剧场免费观看| 亚洲最新视频在线| av成人免费在线| 国产美女精品免费电影| 久久精品国产清自在天天线| 久久激情视频久久| 亚洲国产99| 亚洲视频在线观看三级| 亚洲一区二区高清| 国内精品免费午夜毛片| 欧美sm极限捆绑bd| 欧美激情一二区| 亚洲综合色激情五月| 性欧美8khd高清极品| 在线观看亚洲一区| 日韩视频免费在线| 国产偷自视频区视频一区二区| 美女精品自拍一二三四| 欧美黄在线观看| 香蕉久久a毛片| 暖暖成人免费视频| 亚洲欧美综合v| 久久亚洲一区二区| 亚洲欧美第一页| 美女性感视频久久久| 亚洲一区在线观看视频| 久久久91精品| 亚洲欧美精品在线观看| 久久一区二区三区国产精品| 亚洲在线视频一区| 免费观看欧美在线视频的网站| 亚洲自拍偷拍福利| 免费观看成人www动漫视频| 欧美一区二区成人6969| 欧美激情第8页| 久久一区免费| 国产精品网站一区| 99精品99| 99re6这里只有精品| 久久精品九九| 欧美综合77777色婷婷| 欧美三级精品| 亚洲人体影院| 91久久精品美女| 久久精品av麻豆的观看方式 | 国产欧美欧洲在线观看| 亚洲激情av在线| 国内精品99| 午夜精品久久久久影视| 亚洲天堂网在线观看| 欧美1区3d| 麻豆国产精品一区二区三区| 国产精品亚洲美女av网站| 99在线精品视频在线观看| 亚洲精品一二三区| 免播放器亚洲一区| 欧美成人黄色小视频| 国产一区二区精品| 亚洲欧美日韩另类| 性做久久久久久| 国产精品高清在线| 一本色道久久综合狠狠躁的推荐| 亚洲精选视频免费看| 榴莲视频成人在线观看| 欧美77777| 亚洲国产欧美另类丝袜| 久久人人97超碰精品888| 麻豆精品在线视频| 精品成人乱色一区二区| 久久精品99国产精品日本| 久久久久一区二区三区| 国产一区二区电影在线观看| 麻豆免费精品视频| 黄色成人av网站| 久久亚洲春色中文字幕| 欧美国产综合视频| 日韩午夜中文字幕| 欧美日韩网站| 午夜精品视频在线观看| 久久久蜜桃一区二区人| 亚洲成色www8888| 欧美黄色一区二区| 中文日韩在线| 久久久久久久网| 亚洲黑丝在线| 欧美午夜片欧美片在线观看| 亚洲欧美成aⅴ人在线观看| 久久精品人人| 亚洲啪啪91| 国产精品免费网站在线观看| 欧美亚洲视频| 亚洲激情专区| 欧美一区二区在线播放| 精品福利免费观看| 欧美精品一区在线观看| 亚洲视频中文| 免费亚洲网站| 亚洲影视在线播放| 一区二区在线免费观看| 欧美日韩国产综合久久| 午夜精品久久久久久久蜜桃app| 久久久久久久一区二区三区| 亚洲精品精选| 国产拍揄自揄精品视频麻豆| 欧美.www| 午夜欧美精品| 日韩小视频在线观看专区| 久久九九99| 亚洲尤物精选| 亚洲日韩视频| 国内精品久久久久久久影视麻豆 | 亚洲欧美国产77777| 在线观看日韩欧美| 国产精品欧美久久| 欧美激情二区三区| 久久成人国产| 亚洲伊人色欲综合网| 亚洲福利在线看| 久久琪琪电影院| 午夜精品一区二区三区在线播放| 亚洲国产欧美一区| 韩国一区二区在线观看| 国产精品社区| 欧美午夜免费| 欧美日韩精品一区二区| 欧美gay视频激情| 久久亚洲一区二区| 久久久久久久97| 久久精品99久久香蕉国产色戒|