mysql 在update时候,set字段值是查询出来的.怎么set

mysql 在update时候,set字段值是查询出来的.怎么set,第1张

update 表名 set 字段=(从本表查询出来的子查询)

where id = (从本表查询出来的ID)

但是需要保证子查询只有一条记录,并且只有一个字段

集合(SET)

mysql>create table jihe(f1 set('f','m'))

Query OK, 0 rows affected (0.11 sec)

mysql>desc jihe

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

| Field | Type | Null | Key | Default | Extra |

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

| f1| set('f','m') | YES | | NULL| |

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

可以插入值 "f" "m"

mysql>insert into jihe values("f")

Query OK, 1 row affected (0.56 sec)

mysql>insert into jihe values("m")

Query OK, 1 row affected (0.19 sec)

可以按照序号输入 注意序号为 1 2 4 8 16 32 ....

mysql>insert into jihe values("1")

Query OK, 1 row affected (0.11 sec)

mysql>insert into jihe values("2")

Query OK, 1 row affected (0.11 sec)

所以如果是3那插入的值为 第一个和第二个

mysql>insert into jihe values("3")

Query OK, 1 row affected (0.17 sec)

+-------+

| f1|

+-------+

| f |

| m |

| f |

| m |

| f,m |

+-------+

其他字母不能插入

mysql>insert into jihe values("q")

ERROR 1265 (01000): Data truncated for column 'f1' at row 1

插入空

mysql>insert into jihe values("0")

Query OK, 1 row affected (0.11 sec)

超出序号之和不能插入

mysql>insert into jihe values("4")

ERROR 1265 (01000): Data truncated for column 'f1' at row 1

mysql里可以设置编码的。因mysql内部字符集是latin1,所以这里也需要将character_set_client、character_set_connection和character_set_results设置为latin1。设置方法是要打开mysql的可视化界面来设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6144959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存