MYSQL笔记

1、webconfig配置连接字符串

<configuration>
  <connectionStrings>
      <add name="connstr" connectionString="server=localhost;uid=root;pwd=root;Database=zhongshuhui;MultipleActiveResultSets=True;" />
    </connectionStrings>
</configuration>

//所需项目,引用=>框架=>System.Configuration
//项目内部
using System.Configuration;

//配置的mysql
string constr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

2、使用mysql的方法,参考:

https://www.cnblogs.com/gaokaitai/p/10633858.html

3、查询语句的in()内部是数字型的,如果是用其他表的字段或者某个字符串变量则不能查全

解决方案,使用INSTR

SELECT GROUP_CONCAT(b.nickname) mods 

FROM my_forum a LEFT JOIN my_user b on 

INSTR(concat(',',a.moduids,','), concat(',',b.uid,','))  

WHERE a.fid = '2' 
SELECT * from my_forum WHERE INSTR(concat(',',moduids,','),',3,')

注:在查询3的时候会将 1,2,13 也查询出来,故需给两个值都加上逗号

4、新增字段

alter table app_order add column bonus decimal(18,2) DEFAULT null COMMENT '佣金';

5、在某些查询的结果字符串很长的情况下需要修改group_concat的长度限制

SET SESSION group_concat_max_len = 204800;

6、设定一个字段为自增字段

ALTER TABLE bbs_user_favorite MODIFY id INT(11) auto_increment;

7、case when 和 update的组合使用

UPDATE zsh_app_order SET discount_type = CASE discount_type WHEN NULL THEN 1 ELSE CONCAT(discount_type, ',', 1) END WHERE id = 1

8、case when和sum一起使用,统计数据

//警示,END后面加东西会报错
SELECT SUM(CASE WHEN pid IS NULL THEN 0 ELSE 1 END) AS totalNum, pid FROM bbs_post
GROUP BY pid;

9、防止sql注入

str.Replace(@"\", @"\\").Replace(@"'", @"''");

10、数据量过大还原备份报错

设置一次之只能生效一次
问题原因:导入的数据超过了mysql默认单个字段最大容量
查看数据库中最大的单个文件容量
SHOW VARIABLES LIKE '%max_allowed_packet%';
设置最大单个文件容量为10M,单次有效(新建查询---运行)
SET GLOBAL max_allowed_packet=20*1024*1024;
重新还原备份

11、使用in时,变量是字符串,不好用in

a、UPDATE jj_coupon SET isDelete = 1 WHERE id IN ('{ string.Join("', '", selectedIds) }')");

b、使用 FIND_IN_SET(str,strlist)

12、为null的则排在后面
select * from bjy_order order by order_number is null,order_number asc;

13、视图(mysql sqlserver)

适用情况:一个比较复杂的查询不想每次都写很多语句,就可以写个视图。下次查询的时候是需要使用select * from视图名就可以了。 或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。

//创建视图

CREATE VIEW name AS SELECT ID FROM TABLE;

//修改视图

ALTER VIEW name AS SELECT ID FROM TABLE;

//使用视图

SELECT * FROM name;

//删除视图

DROP VIEW name;

14、函数

15、存储过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值