MySQL的一些操作記錄

wxvirus發表於2020-12-11

SQL新增欄位

ALTER table TABLE_NAME(表名) ADD CULUMN `field(欄位)` 資料型別 是否無符號 是否為空 是否設定預設值;

刪除欄位語句

 ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME

使用DISTINCT / GROUP BY 進行去重

SELECT DISTINCT 某某欄位 FROM XX表 GROUP BY xx欄位

獲取一個表內2個欄位相同的資料

quantity和take_count

SELECT `id`, `status`, `quantity`, `take_count`
FROM coupon AS a
WHERE 
EXISTS ( SELECT quantity, take_count FROM coupon WHERE quantity = a.take_count GROUP BY quantity HAVING count( * ) > 1 )

開放資料庫訪問許可權

開放遠端連線許可權:grant [許可權] on [database.table] to [使用者名稱]@[IP] identified by [密碼];
重新整理許可權:flush privileges;
例子:

grant all privileges on test.* to user@'%' identified by '1234';  

意思是,test資料庫的所有表對任意IP地址的user使用者開放所有許可權,登陸密碼是1234。

修改欄位的資料型別

ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

不保險還是用第三方工具進行修改表結構

字母加數字拼接的內容查詢

這裡的卡券號是varchar型別的,所以這邊查詢的需求是先輸入一個卡券字首,後面輸入一個去除字首之外的號的起始和結束
比如查詢 CS001~CS020之間的所有卡號

select * from coupon 
where number like 'CS%'
and CONVERT(REPLACE(number, "CS",""),SIGNED) >= 1
and CONVERT(REPLACE(number, "CS", ""),SIGNED) <= 20

語法說明

select * from table where CONVERT(replace(起始卡號, "固定字首", ""),SIGNED) < 查詢的號碼
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Virus

相關文章