mysql update select用法实例

   mysql update select用法实例

  应该使用inner join,即:

  UPDATE friends INNER JOIN users ON friends.friendid=users.userid SET friends.friendname=users.username

  MySQL是通过临时表来实现FROM子句里面的嵌套查询,那么把嵌套查询装进另外一个嵌套查询里,可使FROM子句查询和保存都是在临时表里进行,然后间接地在外围查询被引用。

  我们来看如下sql语句:

  update apples

  set price = (

  select price from (

  select * from apples

  ) as x

  where variety = 'gala')

  where variety = 'fuji';

  继续来看如下两条实例

  update a set a.xx= (select yy from b) where a.id = b.id ;

  但是在mysql中,不能直接使用set select的结果,必须使用inner join:

  update a inner join (select yy from b) c on a.id =b.id set a.xx = c.yy

  如下一条经典Mysql update语句赋值嵌套select实例

  update mem_player set `DataWarehouse`=(select `DataWarehouse` from (select * from mem_player) as b where `Pid`=100000)

时间: 2024-05-21 13:52:53

mysql update select用法实例的相关文章

mysql update 多表实例

  mysql update 多表实例讲解 我们先来看如下实例: 实例一: update tab1 set tab1.商品尺寸 = (select tab2.商品尺寸 from tab2 where tab2.商品颜色 = tab1.商品颜色) where tabl1.商品颜色 in (select tab2.商品颜色 from tab2) 继续如下实例: UPDATE CMS_Document A,CMS_Template B SET A.RuleType2=B.RuleType WHERE

MySQL子查询用法实例分析_Mysql

本文实例讲述了MySQL子查询用法.分享给大家供大家参考,具体如下: 假设表my_tbl包含三个字段a,b,c:现在需要查询表中列a的每个不同值下的列b为最小值的记录量. 比如表记录为: a  b  c 1  3  'cd' 2  3  'nhd' 1  5  'bg' 2  6  'cds' 1  7  'kiy' 3  7  'vsd' 3  8  'ndf' 希望得到结果为: a  b  c 1  3  'cd' 2  3  'nhd' 3  7  'vsd' (1) 其中一个做法:先查出

mysql alter语句用法实例_Mysql

//主键 ALTER TABLE tablename add new_field_id int(5) UNSIGNED DEFAULT 0 NOT NULL anto_increment,ADD PRIMARY KEY (new_field_id); //增加一个新列 mysql>ALTER TABLE tablename ADD fieldname fieldtype 如: ALTER TABLE t2 ADD d TIMESTAMP; ALTER TABLE infos ADD ex TIN

mysql SELECT FOR UPDATE 语句用法详解

以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式: SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE 这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行.而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update

mysql update语句的用法详解_Mysql

首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count] 其次,多表的UPDATE语句:   UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col

求助 关于mysql 中select * 的问题

问题描述 求助 关于mysql 中select * 的问题 遇到一个特殊情况, 下面两条语句,第一条可以执行成功,第二条会报语法错误(count_time 是 a表中得一个字段) 1 select * , FROM_UNIXTIME(count_time) from a 2 select FROM_UNIXTIME(count_time),* from a 求大神回复为什么会这样.多谢! 解决方案 FROM_UNIXTIME作用将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD&q

mysql 的select 查询问题

问题描述 mysql 的select 查询问题 SELECT t.* FROM deviceloginfo t houses h where t.HouseId = h.ID and h.HousePurpose = '企业用房' order by t.createDate desc;可以查询出来 但换成:SELECT count(t.*) FROM deviceloginfo t houses h where t.HouseId = h.ID and h.HousePurpose = '企业用

MySQL里面的Replace 的用法和insert .. update 的用法

MySQL里面的Replace 的用法和insert .. update 的用法   drop table if exists t;   create table t(id int not null auto_increment primary key, name varchar(100));   create unique index idx_t on t(name);   replace into t (name) values('first'); -- 数据的id=1   select *

SQL语句详解 MySQL update的正确用法_Mysql

单表的MySQL UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count] 多表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_n