来自 数据库 2020-01-11 07:07 的文章
当前位置: 网上澳门金莎娱乐 > 数据库 > 正文

一个有趣的SQL命题 用一条语句切换BIT型的真假值

当然,第一反应是用存储过程。判断原来这个字段值,然后UPDATE。 网上粗粗找了一下没找到方案。自己一动手,居然有个很有趣的结果,连WHERE都不用 对数据库的BIT型赋值,用SQL语句来操作和用管理界面输入不同。管理界面输入必须用TRUE或FALSE来填写。而SQL语句则用0或1 于是乎,先尝试: 复制代码 代码如下:updat t set b=b+1 where id=1; select b from t where id=1; b字段一直保持1 那么用减号呢 复制代码 代码如下:update t set b=b-1 where id=1; select b from t where id=1; 可以发现每次结果就在0和1之间切换,SQL SERVER把-1当做1来处理。 这个需求很容易就解决了。 通常这在一些状态切换的地方会用到,在需求中不需要知道切换后的情况。很有趣也很简单,呵呵

在mysql中关联删除与关联更新我们会使用到update与delete来实现,下面我来给大家举例介绍mysql 多表关联更新/删除sql语句,希望此方法对你有帮助。

1、mysql 多表关联delete中使用别名,tblwenhq是真实的表名,a是tblwenhq的别名,b是另一个表名

 代码如下

复制代码

DELETE  a FROM tblwenhq a,b where a.id=b.id

2、使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误。

DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 );

ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM clause

正确用法:DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 as a);

表关联Update笔记

 代码如下

复制代码

UPDATE b,a SET b.public=a.public WHERE b.id=a.id

对单表执行更新没有什么好说的,无非就是update table_name set col1 = xx,col2 = yy where col = zz,主要就是where条件的设置。有时候更新某个表可能会涉及到多张数据表,例如:

 代码如下

本文由网上澳门金莎娱乐发布于数据库,转载请注明出处:一个有趣的SQL命题 用一条语句切换BIT型的真假值

关键词: