mysql update select 用法】的更多相关文章

之前用SqlServer , update语句对表进行更新:update a set a.xx= (select yy from b) ; 是可以的但是在mysql中,不能直接使用set select的结果, UPDATE ecs_users_copySET `user_name` = ( SELECT `identity_card` FROM ecs_users_copy WHERE LENGTH(identity_card) = 18 AND LENGTH(user_name) != 18…
UPDATE `TB_CM_Dic` SET `ParentID` = (SELECT `ID` FROM (SELECT * FROM `TB_CM_Dic`) AS B WHERE `DicName` = '药品类别') WHERE `ID` = ( SELECT `ID` FROM( SELECT * FROM `TB_CM_Dic` WHERE `DicName` = '日常用品' AND `ParentID` = ( SELECT `ID` D FROM `TB_CM_Dic` D W…
主要是为了搞定一个select语句,因为语法比较奇怪,没看懂,百度了一些结果 select的东西相当于一个临时表,as就给这临时表取个名字. SELECT语句的完整语法SELECT语句的完整语法为: SELECT[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,-]]} FROM tableexpression[,-][IN externaldatabas…
根据文件名 更新外键ID UPDATE tb_obj  INNER JOIN tb_img ON tb_img.filename=tb_obj.filename  SET tb_objinfo.imgid = tb_imginfo.id; 关联删除 DELETE tb_sce FROM tb_sce,tb_img WHERE tb_sce.imgid=tb_img.id and tb_img.refurl is NULL; 同表select in 删除 DELETE FROM tb_img WH…
update t_news inner join (select readCount from t_news t2 where t2.id=1) t1 set t_news.readCount = t1.readCount+1 where t_news.id=1;…
UPDATE user_online_month_atu a INNER JOIN ( SELECT user_id, sum(c.online_times) as online_times, SUM(c.login_count) as login_count, Sum(c.view_page_count) as view_page_count, LEFT(c.log_date,length(c.log_date) - 2) as date FROM user_online_time_atu c…
用一个表的某列值更新另外一个表的某列值的sql语句: update tableA a innner join tableB b on a.column_1 = b.column_1 set a.column_2 = b.column_2; 用一个表的某列值更新同一个表的另一列值的sql语句: update tableA a innner join tableA b on a.column_1 = b.column_1 set a.column_2 = b.column_2;…
use `testdb`; update dtable d INNER JOIN new_table n ON d.details = n.details set d.email = n.email, d.cellphone =n.cellphone,d.contact = n.contact,d.address = n.address update 遇到 disable safe 使用 以下语句解决 SET SQL_SAFE_UPDATES=0;…
转自:http://blog.sina.com.cn/s/blog_a74f39a201013c3b.html 1.选择所有的记录 select * from table_name; 其中*表示表中的所有字段. 2.查询不重复的记录 用关键字distinct select distinct  字段名  from  表名: 3.条件查询 用关键字where select * from 表名 where 条件: where后面的条件是一个字段的比较,可以使用=.>.<.>=.<=.!=…
一.条件筛选 1.数字筛选:sql = "Select * from [sheet1$] Where 销售单价 > 100" 2.字符条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 3.日期条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 4.区间条件:sql = "Select * from [sheet1$] Wh…
MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式: SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE 这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行.…
Select…For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句. 该语句用来锁定特定的行(如果有where子句,就是满足where条件的那些行).当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句的事务被commit语句或rollback语句结束为止. MySQL  使用SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansactio…
MySQL中的事务,默认是自动提交的,即autocommit = 1: 但是这样的话,在某些情形中就会出现问题:比如: 如果你想一次性插入了1000条数据,mysql会commit1000次的, 如果我们把autocommit关闭掉[autocommit = 0],通过程序来控制,只要一次commit就可以了,这样也才能更好的体现事务的特点! 对于需要操作数值,比如金额,个数等等! 记住一个原则:一锁二判三更新 在MySQL的InnoDB中,预设的Tansaction isolation lev…
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住). 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键. 例1: (明确指定主键,并且有此笔资料,row lock) SELECT * FROM products WHERE id='3' F…
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住).举个例子:假设有个表单products ,里面有id跟name二个栏位,id是主键.例1: (明确指定主键,并且有此笔资料,row lock)SELECT * FROM products WHERE id='3' FOR U…
由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住). 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键. 例1: (明确指定主键,并且有此笔资料,row lock) SELECT * FROM products WHERE id='3' FOR UPDATE; SELECT * FROM produc…
mysql  各种级联查询后更新(update select). CREATE TABLE `tb1` (   `id` int(11) NOT NULL,   `A` varchar(100) default NULL,   `B` varchar(100) default NULL,   `C` varchar(20) default NULL,   PRIMARY KEY  (`id`),   KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=…
一.mysql中limit的用法详解[数据分页常用] 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第…
MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器 授权->确定用户是否拥有足够的权限执行查询请求等. 如果认证不成功的话,哪么授权肯定是无法进行的. revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 表 GRANT和REVOKE管理的权限 权限 描述 ALL PRIVILEGES 影响除WITH GRANT OPTION之外的所有权限 ALTER 影响ALTER TABLE命令的使用 ALTER ROUTINE 影响创建存储…
一.启动与退出 1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 2.退出MySQL:quit或exit 二.库操作 1..创建数据库 命令:create database <数据库名> 例如:建立一个名为xhkdb的数据库 mysql> create database xhkdb; 2.显示所有的数据库 命令:show databases (注意:最后有个s) mysql&…
mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执行查询请求等.   如果认证不成功的话,那么授权肯定是无法进行的.   revoke 跟 grant 的语法差不多,只需要把关键字 "to" 换成 "from".   表 GRANT和REVOKE管理的权限   如果你想允许用户myuser从ip为192.168.1.6…
(一) 1.字符串函数ascii(str)    返回字符串str的第一个字符的ascii值(str是空串时返回0)   mysql> select ascii('2');   -> 50   mysql> select ascii(2);   -> 50   mysql> select ascii('dete');   -> 100 ord(str)    如果字符串str句首是单字节返回与ascii()函数返回的相同值.   如果是一个多字节字符,以格式返回((fi…
GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost'; 我先按我的理解解释一下上面两句的意思建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的然后第二句的意思是 ,给这个d…
讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果存在,则更新. 在 SQL Server 中可以这样处理: ) , getdate()) else 那么 MySQL 中如何实现这样的逻辑呢?别着急!mysql 中有更简单的方法: replace into , now()); 或 , now(); replace into 跟 insert 功能类…
转 http://blog.csdn.net/risingsun001/article/details/38977797 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果存在,则更新. 在 SQL Server 中可以这样处理: if not exists (select 1 from t where id = 1) insert into t(id, up…
1.insert select from <一棵树-博客园> 收集整理,转载请注明出处! 使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 [where column =value][]为可选内容要求目标表Table2必须在由于目标表Table2已经存在…
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而 这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花了很多时间来研究这个问题,网上也查不到解决方案 下面先来看看例子:…
总结:  关键的地方是where 语句的加入. 在11G中, 如果不加11G , 或造成除匹配的行数更新为相应的值之后, 其余的会变成负数. 所以, 测试的办法就是:  先查看需要更新的数量即连接的数量究竟有多少行, 然后update 之后多少行, 才能确定条件是否正确. 引入知识比较全面的地址: http://www.blogjava.net/Jhonney/archive/2010/06/25/324503.html.  文章最后注明转载. 本人用到的2处SQL:  1 :    , , B…
(转载)http://blog.tianya.cn/blogger/post_read.asp?BlogID=4221189&PostID=47881614 mysql distinct 去重 (2011-07-15 14:43:11) 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是 distinct只能返回它的目标字段,而无法…
(转载)http://hi.baidu.com/sppeivan/item/e45179375d6778c62f8ec221   mysql中limit用法 使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,已 经为我们提供了这样一个功能. SELECT * FROM table   LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数…