Adsense
Popular Posts
- MySQL workbench -"Could not decrypt password cache"
- Install APXS in Redhat Linux
- react-pdf, display pdf in react.js
- Transfer modules between sites
- JavaScript, remove trailing insignificant zeros after toFixed function
- Set Windows path command line
- datatable order by nunmeric
- MySQL date created and date modified
- React: connect(mapStateToProps, mapDispatchToProps)
- 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