发现问题

最近在处理一些数据库中数据的时候,写了下面的这一条sql语句:

UPDATE f_studentSET school_id = 0WHERE id > ( SELECT id FROM f_student WHERE school_id = M LIMIT 1 )AND id < ( ( SELECT id FROM f_student WHERE school_id = M LIMIT 1 ) + N)
[Err] 1093 – You can't specify target table ‘f_student' for update in FROM clause

解决方法

上网查了一下,针对这种问题可以通过”绕”的方式进行实现,下面看sql语句。

UPDATE f_student SET school_id = 0 WHERE                     id >                      (                     SELECT id FROM (                          SELECT id FROM f_student WHERE school_id = M LIMIT 1                        ) AS temp                      )                     AND id <                    (                     (                      SELECT id FROM (                               SELECT id FROM f_student WHERE school_id = M LIMIT 1                              ) AS temp_1                      ) + N                    )

总结

更多相关文章

  1. Android(安卓)模糊搜索rawquery bind or column index out of ra
  2. 发现 developer.android.com 官网的一个单词错误:
  3. Android调用.NET Webservice报org.ksoap2.serialization.SoapPri
  4. Android(OpenCV) NDK开发: 0xdeadbaad(code=1)错误 及 关闭armea
  5. android中HttpURLConnection调用getResponseCode()时崩溃 解决方
  6. Android空引用问题的解决方法——on a null object reference
  7. ionic android升级错误 exposed beyond app through Intent.getD
  8. Java工程中调用Android库出现“Stub!”错误
  9. android读取assets大于1M文件的解决方法

随机推荐

  1. C#如何使用Socket发送HTTP/HTTPS请求实例
  2. C#制作ActiveX控件中如何调用海康SDK的问
  3. C#中关于反射和dynamic最佳组合的示例分
  4. C#中面向对象设计七个原则介绍
  5. 有关C#工厂模式简单讲解
  6. 介绍C#中的堆和栈
  7. 介绍C#中的接口
  8. 比较C#中值类型和引用类型的区别
  9. C#/.NET易错的几点
  10. Sql的执行过程说明