我正在制作一个需要将commandnamecommandreply存储在数据库中的机器人。我正在使用mySQL Workbench。

我想检查用户尝试制作的commandname是否已在表中,如果显示,请显示该表。如果不是,则继续(执行命令)。

connection.query("SELECT commandname FROM commands WHERE EXISTS (commandname = " + args[0] + ")"


(其中args[0]是命令名称)。这是我最初的想法,尽管我在SQL方面没有太多经验。我不确定如果存在或不存在,它将显示什么。

最佳答案

SELECT count(*) FROM commands WHERE commandname = ' + args[0] + '


如果返回0,则插入else更新。

更好的方法是先更新,然后查看多少行(如果为0然后再插入),那么在大多数情况下,它将仅运行1个查询(假设更新比插入更频繁)。

10-05 20:09