MySQL的一些操作记录
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) < 查询的号码
这边大佬给了一个好的搜索方式
select * from table where number <= 'CS020' and number >= 'CS001';
就搜索语句简洁度和执行速度来说,这个确实好一点。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: