MYSQL语句的赋值操作

SJY发表于:2018年04月15日 12:14 • 阅读:

本站最近不少内容中,代码都只有一半,因为早期这些文章我都写在本地的DISCUZ论坛中,当时写到论坛时代码已经缺失了,这是论坛程序不完善的关系。所以复制到现在的sjyhome.com 也是缺失的,如果以后有时间再整理,没时间或者用不到可能永远不再整理。

INSERT INTO `xiu_posts`(`title`, `slug`) VALUES ('aa',);
UPDATE `xiu_posts` SET `title`=@@IDENTITY WHERE `id`=1013;

@@identity是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。

set @aa=(SELECT COUNT(*) FROM `xiu_posts`);
UPDATE `xiu_posts` SET `title`=@aa WHERE `id`=1013

把查询结果赋值给变量aa

SELECT @update_id := `id` FROM `xiu_posts` WHERE `id`=3;
SELECT * FROM `xiu_posts_data`  WHERE `id`=@update_id;

把查询结果赋值给变量update_id

UPDATE `xiu_comments` SET `comment_approved`=0,`comment_post_id`=(SELECT @postid := `comment_post_id`) WHERE `comment_id`=120;
SELECT @postid


更新的同时,把字段slug的值赋值给变量 update_id 

欢迎转载,但请保留原文地址 http://www.sjyhome.com/mysql/1332.html

标签: 赋值

回复(0)