sql - MySQL select and update multiple rows from same table -


generally want select rows orders table in database, created after date, , update office_id field of selected rows specific value 12. mysql version 5.5.43. @ firs trying put in 1 sql statement so:

update `order` set office_id = 12 id in (     select id    `order`    created_at >= date_format( '2014-07-02 00:00:00', '%y.%m.%d 00:00:00' )  ); 

and getting error: #1093 - can't specify target table 'order' update in clause.

next tried select .. update statment so:

start transaction;  select id  `order`  created_at >= date_format( '2014-07-02 00:00:00', '%y.%m.%d 00:00:00' )  update;  update `order` set office_id = 12 id in ( id );  commit; 

which worked, if select .. update statement returns no rows, office_id = 12 applied rows in orders table, defenetely don't want.

i'm looking in modification 1st or 2nd solution propper working.

it's simpler you're making it. can apply clause directly update statement.

update `order`     set office_id = 12     created_at >= date_format( '2014-07-02 00:00:00', '%y.%m.%d 00:00:00' ); 

Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -