merge into tlhq_temp a using account b on (a.newaccname=b.name) when MATCHED then   update  set a.bz=1mysql上好像好多都没,mysql能搞成一句他这样的吗?

解决方案 »

  1.   

    mysql没有merge语句吧
    不过mysql自己有个replace into,也是语法跟传统sql有点区别或则移到mysql版提问 
      

  2.   

    那就只能换成 分句执行了吗?上面的那个语句 要用MYSQL分几部?对OR的不是很熟悉
      

  3.   

    replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
    第一种形式类似于insert into的用法,第二种replace select的用法也类似于insert select,这种用法并不一定要求列名匹配,事实上,MYSQL甚至不关心select返回的列名,它需要的是列的位置。例如,replace into tb1( name, title, mood) select rname, rtitle, rmood from tb2;?这个例子使用replace into从?tb2中将所有数据导入tb1中。第三种replace set用法类似于update set用法,使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1。