sql查询,置顶功能怎么写

最近在学习node,写一些接口,有个置顶功能,希望大佬指点

const query = `insert into article(title,html,tag,pic,video,apply,original,description,top) values('${title}','${html}','${tag}','${pic}','${video}','${apply}','${original}','${description}','${top}')`;

上面是sql,查询语句
根据top,来判断是否置顶,当新插入一条数据top='是',需要把之前top=‘是’的那条,变为否,
这该怎么写啊

阅读 2.2k
2 个回答
  1. 你的语句就有问题,应该这样 insert into ??(??) values ?, 然后参数替换,避免攻击
  2. 最简单的思路就是查询一次并更改即可
  3. 但,置顶功能,有没有可能需要置顶 n 条呢,所以你可以这样想,每次插入,需要置顶就给一个 时间戳,新的肯定大于旧的,置顶前几条无非是取时间戳最新的那n个
  4. 想到了触发器,设置 sql 触发器应该也可以吧

update article set top='否' where top='是';

再insert. 最好给top加个索引

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏