| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1265 | Data truncated for column 'Work_City' at row 1 |
+---------+------+------------------------------------------------+
1 row in set (0.00 sec)
小結:
集合類型SET字段即使沒有定義空格字符串作為元素,也會默認成為其中一個組成元素;
集合類型SET字段不允許為NULL時,向其寫入NULL值會報錯,導致SQL執行失敗;
集合類型SET字段不允許為NULL且無顯式申明默認值時,未集合類型字段給出值的INSERT操作,會出現警告信息,提示字段值階段,并且用空字符串值替代,SQL語句執行成功;
集合類型SET字段的值域列表中有空字符串元素時,決斷用空字符串值替代的記錄,與顯式寫入空字符串值的序列編號不同,前者序號為0,后者序號為值域列表中真實的順序;
向集合類型SET字段寫入一個值域列表中,不存在的值,會發生字段值截斷,并且用空格字符串替代,SQL語句執行成功;
集合類型SET字段值域列表中任意元素的組合,只要用逗號分隔,就是合法的值;
集合類型SET字段值域列表中任意元素的組合時,若部分元素的值沒有用逗號分隔,或者部分不是值域列表中元素值或組合,則會把非法的部分截斷掉,并且給出警告信息,SQL語句執行成功;
c). 查詢數據庫表mysqlops_SET的數據
root@localhost : test 03:18:31> select * from mysqlops_SET;
+----+-----------------+----------------------------------------------------+
| ID | Work_Option | Work_City |
+----+-----------------+----------------------------------------------------+
| 1 | QA | shanghai |
| 2 | NA | |
| 3 | | hangzhou |
| 4 | | |
| 5 | DBA | shanghai |
| 6 | DBA | shanghai |
| 7 | DBA,SA | shanghai,beijing |
| 8 | DBA,SA,NA | shanghai,beijing,hangzhou |
| 9 | DBA,SA,NA | shanghai,beijing,hangzhou,shenzhen,guangzhou,other |
| 10 | Coding Engineer | |
| 11 | Coding Engineer | shanghai |
| 12 | | shanghai |
| 13 | | hangzhou |
| 20 | DBA,SA,NA | shanghai,beijing |
+----+-----------------+----------------------------------------------------+
14 rows in set (0.00 sec)
root@localhost : test 03:07:02> SELECT * FROM mysqlops_set WHERE Work_Option=0;
+----+-------------+-----------+
| ID | Work_Option | Work_City |
+----+-------------+-----------+
| 3 | | hangzhou |
| 4 | | |
+----+-------------+-----------+
2 rows in set (0.00 sec)
root@localhost : test 03:07:42> SELECT * FROM mysqlops_set WHERE Work_Option=1;
Empty set (0.00 sec)
root@localhost : test 03:07:44> SELECT * FROM mysqlops_set WHERE Work_Option=2;
+----+-------------+-----------+
| ID | Work_Option | Work_City |
+----+-------------+-----------+
| 5 | DBA | shanghai |
| 6 | DBA | shanghai |
+----+-------------+-----------+
2 rows in set (0.00 sec)
root@localhost : test 03:08:09> SELECT * FROM mysqlops_set WHERE Work_Option=6;
+----+-------------+------------------+
| ID | Work_Option | Work_City |
+----+-------------+------------------+
| 7 | DBA,SA | shanghai,beijing |
+----+-------------+------------------+
1 row in set (0.00 sec)
root@localhost : test 03:10:04> SELECT * FROM mysqlops_set WHERE Work_City=0;
+----+-------------+-----------+
| ID | Work_Option | Work_City |
+----+-------------+-----------+
| 2 | NA | |
| 4 | | |
+----+-------------+-----------+
2 rows in set (0.00 sec)
root@localhost : test 03:10:18> SELECT * FROM mysqlops_set WHERE Work_City=1;
+----+-------------+-----------+
| ID | Work_Option | Work_City |
+----+-------------+-----------+
| 1 | QA | shanghai |
| 5 | DBA | shanghai |
| 6 | DBA | shanghai |
+----+-------------+-----------+
3 rows in set (0.00 sec)
root@localhost : test 03:10:20> SELECT * FROM mysqlops_set WHERE Work_City=2;
Empty set (0.00 sec)
root@localhost : test 03:10:22> SELECT * FROM mysqlops_set WHERE Work_City=3;
+----+-------------+------------------+
| ID | Work_Option | Work_City |
+----+-------------+------------------+
| 7 | DBA,SA | shanghai,beijing |
+----+-------------+------------------+
1 row in set (0.00 sec)
root@localhost : test 03:10:24> SELECT * FROM mysqlops_set WHERE Work_City=4;
原文轉自:http://blogread.cn/it/article/5114