Adsense
Popular Posts
- Code update from PHP 7.4 to PHP 8.1 - PhpSpreadsheet
- MySQL workbench -"Could not decrypt password cache"
- Code update from PHP 7.4 to PHP 8.1 - Worksheet/Iterator.php
- Rendering HTML tags inside textarea
- axios handle blob type data
- Unix Utils and wget in Windows
- increase mysql query speed
- Setup vi syntax for PHP
- Get WAMP running on EC2
- EXCEL return to the next line in the same cell
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