当前位置: 首页 > 后端技术 > Node.js

初学mysql语句

时间:2023-04-03 23:17:06 Node.js

Select、LeftJoin用法、模糊查询的实现:LEFTJOIN关键字会返回左表(table_name1)的所有行,即使右表(table_name2)没有匹配的行。(业务需求:从一张表中查询到的数据要与另一张表相关联,实现模糊查询)constsql=`selectcei.intentionID,cei.engineerName,cei.nickname,cei.headImgUrl,ifnull(cmw.headImgUrl,'')inviteImgUrl,ifnull(cmw.nickname,'')inviteNickNamefromcm_engineer_intentionsceileftjoincm_member_wechatscmwoncmw.referralCode=cei.inviteCodewhere(:isGrant=-1orisGrant=:isGrant)and(:intentionStatus=-1orintentionStatus=:intentionStatus)and(:searchKey=''orconcat(engineerMobile,engineerName)likeconcat('%',:searchKey,'%'))orderbyintentionStatusasc,createTimedesc`;UpdateSet的用法(业务需求:传入一个字段时更新,不传入则忽略,方便根据需要选择是否插入字段)constcontactRemarkSql=是更新备注?',contactRemark=:contactRemark':'';constsql=`updatecm_engineer_intentionssetintentionStatus=:intentionStatus${contactRemarkSql}whereintentionID=:intentionID`;Delete、In的用法:(IN运算符允许我们在WHERE子句中指定多个值)下面的SQL语句可以删除满足条件的多条数据(业务需要请求:执行删除操作时,如果创建数据的人是操作数据的人,则删除,否则更新状态)constdeleteSql=deletefromcm_fast_order_goodswhereorderGoodsIDin(${deleteData.deleteIDs})andcreateUser=:userName;constupdateSql=updatecm_fast_order_goodssetstatus=0whereorderGoodsIDin(${deleteData.deleteIDs})andcreateUser!=:userName;Insert的用法(业务需求:新增一条数据)constsqlOrderEngineer=`insertintocm_order_engineers(orderEngineerID,orderGoodsID,orderID,engineerID,engineerName,createUser,createTime)values(:orderEngineerID,:orderGoodsID,:orderID,:engineerID,:engineerName,:createUser,:createTime)(业务需求:每新增一条数据,原数据中的一个字段+1)constsql=`insertintocm_engineers(engineerCode,loginName,password,engineerName,sex,birthDate,status,createUser,createTime)selectifnull(max(engineerCode),0)+1,:loginName,:password,:engineerName,:sex,:birthDate,:status,:createUser,now()fromcm_engineers`;(业务需求:将其他表的数据添加到当前表)insertintocm_fast_order_goods(orderGoodsID,orderID,goodsID,goods代码,goodsPicUrl,createUser,createTime)选择:orderGoodsID,:orderID,:goodsID,goodsCode,iconUrl,:createUser,现在()来自cm_service_goodswheregoodsID=:goodsID和status=1