Adsense
Popular Posts
- MySQL workbench -"Could not decrypt password cache"
- peer review (3)
- PHP, dump varailbes in a format way
- "Unusual traffic from your computer network" from blogger
- Install APXS in Redhat Linux
- JavaScript, remove trailing insignificant zeros after toFixed function
- Update member directory
- Set Windows path command line
- JavaScript: add days to current date
- DataTable table order by numeric, not by text
Tuesday, July 8, 2014
Example of control flow to select and update in MySQL
In bus_leaves table, I have columns
LeaveStartDate and StartTerm
StartTerm has four digits, the first digit is 1, the second and third digit are from last two digits of year,
the forth digit (last) is equal to 1for moth between 1-4, 4 for month between 5-8, 7 for month between 9-12.
LeaveStartDate is date type and has format 2013-05-01
I want to convert LeaveStartDate to StartTerm
1. First using SELECT to see convert result:
SELECT CASE WHEN MONTH(DATE(LeaveStartDate))>= 1 AND MONTH(DATE(LeaveStartDate))<=4 THEN (YEAR(DATE(LeaveStartDate)) - 1900) * 10 + 1 WHEN MONTH(DATE(LeaveStartDate))>= 5 AND MONTH(DATE(LeaveStartDate))<=8 THEN (YEAR(DATE(LeaveStartDate)) - 1900) * 10 + 4 WHEN MONTH(DATE(LeaveStartDate))>= 9 AND MONTH(DATE(LeaveStartDate))<=12 THEN (YEAR(DATE(LeaveStartDate)) - 1900) * 10 + 7 END AS SenateEffectiveTerm FROM bus_leaves LIMIT 0, 25
2. Update StarTerm:
UPDATE bus_leaves SET StartTerm =CASE WHEN MONTH(DATE(LeaveStartDate))>= 1 AND MONTH(DATE(LeaveStartDate))<=4 THEN (YEAR(DATE(LeaveStartDate)) - 1900) * 10 + 1 WHEN MONTH(DATE(LeaveStartDate))>= 5 AND MONTH(DATE(LeaveStartDate))<=8 THEN (YEAR(DATE(LeaveStartDate)) - 1900) * 10 + 4 WHEN MONTH(DATE(LeaveStartDate))>= 9 AND MONTH(DATE(LeaveStartDate))<=12 THEN (YEAR(DATE(LeaveStartDate)) - 1900) * 10 + 7 END
Labels:
MySQL
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment