備份在 Docker 執行的 MySQL
sudo docker exec CONTAINER_NAME /usr/bin/mysqldump -u root --password=1234 DATABASE_NAME > mydb.sql
參考連結:
sudo docker exec CONTAINER_NAME /usr/bin/mysqldump -u root --password=1234 DATABASE_NAME > mydb.sql
參考連結:
INSERT INTO my_results
SELECT
`unsubscribe`.`email`,
`customer`.`id`,
`customer`.`reg_datetime`,
`customer`.`name`,
`customer`.`sex`,
`customer`.`birthday`,
`customer`.`user_mailok`
FROM `unsubscribe`
LEFT JOIN `customer`
ON `unsubscribe`.`email` = `customer`.`email`;
資料表 my_results 要在跑上面的 SQL 語法前先設定好。
參考連結:
發送 EDM 的時候會夾帶 ID,可以藉此知道是哪一位會員有開過 EDM。
從 Web Server 的 Log 撈出不重複的資料後,使用 phpMyAdmin 匯入到 MySQL。
再跟會員資料表做 JOIN,可以得到有開過 EDM 的會員部份資訊。

SQL 語法如下:
// customer 是會員資料表
// mytest 是不重複的 ID 資料表
SELECT
id,
sex,
birthday,
2024 - SUBSTR(birthday, 1, 4) AS age,
CASE
WHEN 2024 - SUBSTR(birthday, 1, 4) < 20
THEN '1'
WHEN 2024 - SUBSTR(birthday, 1, 4) >= 20
AND 2024 - SUBSTR(birthday, 1, 4) < 30
THEN '2'
WHEN 2024 - SUBSTR(birthday, 1, 4) >= 30
AND 2024 - SUBSTR(birthday, 1, 4) < 40
THEN '3'
WHEN 2024 - SUBSTR(birthday, 1, 4) >= 40
AND 2024 - SUBSTR(birthday, 1, 4) < 50
THEN '4'
WHEN 2024 - SUBSTR(birthday, 1, 4) >= 50
THEN '5'
ELSE 'unknow'
END AS 'age_group'
FROM customer
RIGHT JOIN mytest
ON customer.id = mytest.customer_id
WHERE birthday IS NOT NULL
ORDER BY id ASC;
> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’;
> FLUSH PRIVILEGES;