#### **介紹**
MySQL數據庫服務是一個完全托管的數據庫服務,可使用世界上最受歡迎的開源數據庫來部署云原生應用程序。 它是百分百由MySQL原廠開發,管理和提供支持。
#### **速查清單**
```sql
SELECT VERSION(); -- mysql版本
begin;rollback;commit; -- 事務:開始、回滾、提交
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); -- 格式化今日(2021-08-16)
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'); -- 格式化今日(2021-08-16 06:52:06)
SELECT DATE_SUB(NOW(),INTERVAL 1 DAY); -- 一天前
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d');-- 格式化一天前
SELECT STR_TO_DATE('2021-06-01 14:03:26','%Y-%m-%d %H:%i:%s'); -- 字符串轉時間
SELECT SUBSTRING('abcdefghijk',5); -- 正向范圍截取子串 result:efghijk
SELECT SUBSTRING('abcdefghijk',-4); -- 反向范圍截取子串 result: hijk
SELECT CONCAT('My', 'S', 'QL'); -- 連接字符串
SELECT IF(1>2,2,3); -- 選擇條件
SELECT IFNULL(1,2); -- 過濾null
SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END column_name; -- 選擇條件
SELECT CASE WHEN 1>0 THEN 'one' WHEN 2>0 THEN 'two' ELSE 'more' END column_name; --選擇條件
SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL, 1 = NULL; -- 可比較NULL值操作符
```
#### **ORM 框架**
**xorm**
<https://xorm.io/zh/docs/chapter-01/1.engine/>
**xormplus增強版版文檔**
> 更新較慢,推薦使用原版
<http://www.hmoore.net/xormplus/xorm/167077>
- 偽刪除問題
```golang
DeletedAt jsontime.JsonTime `json:"-" xorm:"'deleted_at' deleted comment('偽刪除標記')"`
```
1. 使用查詢(Find、Get)時回匹配`deleted_at is null) AND (deleted_at=$2 OR deleted_at IS NULL)`語句進行過濾
2. 使用Exist則不會匹配,避免踩坑
3. 為了使其匹配上過濾條件,建議使用Table(new(model.User)),不要使用Table("user")
- QueryInterface() 問題
1. 使用改方法,注意int、float等類型的轉換問題(注意使用cast等字符串轉int),有可能會出現base64轉換返回到前端