Solved

Updating a value in one row to a value in another row of same table in mysql

Posted on 2014-03-12
13
233 Views
Last Modified: 2014-03-18
I have a customers table and want to update a value in (customer ID=x) col=a to (customer ID=y) col=c.
Current value in col a for customer ID=x is 1 and current value in col c for customer ID=y is 2

I want to run a query to update the 2 value in customer y (column name = Count) to be the same as the 1 value in customer x (column name = Subcount)
0
Comment
Question by:dynorich
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
13 Comments
 
LVL 143

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 500 total points
ID: 39923438
I had written an article about update/join:
http://www.experts-exchange.com/Database/Miscellaneous/A_1517-UPDATES-with-JOIN-for-everybody.html

this should help to solve this: watch out that mySQL is a bit differently than the other dbms in regards to the syntax.
0
 

Author Comment

by:dynorich
ID: 39923796
Didn't see solution.

column names: cid   Count   Sponsorscount
              values:  61         1                 0
                            46          0                2
I need to update Sponsorscount from 2 to equal 1 (the value of Count in cid 61)

How would I write the code below to accomplish this?
UPDATE customers
SET Sponsorscount = Count
WHERE cid=46, cid=61
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39923823
let's see if this works for you:
UPDATE customers 
  set Sponsorscount  = ( select o.`count` from customers o where o.cid = 61 )
WHERE cid = 46 

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:dynorich
ID: 39923854
Got the following error

#1093 - You can't specify target table 'customers' for update in FROM clause
0
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 500 total points
ID: 39923870
I remember that "issue" now, you cannot update, in mySql, from within the same table.
so, you have to run the query for the "select" part, store the results, and update using the intermedite results.
0
 

Author Comment

by:dynorich
ID: 39924318
I've requested that this question be closed as follows:

Accepted answer: 0 points for dynorich's comment #a39923796

for the following reason:

Good response time and got the reason for my diffiulties and pointed me in another more doable direction.

Thank you
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39924319
Please close using my comments
0
 

Author Comment

by:dynorich
ID: 39933407
Solved the issue by creating a column in another table and then transfering  the value between the two tables.
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39936219
I repeat that I commented that "in mysql, you cannot directly update a table from other rows from the same table" so one needs to first fetch the value to somewhere else, and then use it from there."
if that's a php variable, using a helper function, doing like the Dynorich posted, or whatever else, my comment is the "answer" to the original question: you cannot do it in a single step (like in all other dbms I know)
0
 

Author Comment

by:dynorich
ID: 39938410
I thought I had closed the question with thanks for the help but have had my question asking ability locked. I don't understand what I did wrong but thanks anyways
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I'm trying, I really am. But I've seen so many wrong approaches involving date(time) boundaries I despair about my inability to explain it. I've seen quite a few recently that define a non-leap year as 364 days, or 366 days and the list goes on. …
This post looks at MongoDB and MySQL, and covers high-level MongoDB strengths, weaknesses, features, and uses from the perspective of an SQL user.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

690 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question