如果存在这样的表,我会尝试选择所有值。如果它不存在,就别管它了。我只想在一段MYSQL代码中做到这一点。而不是用蟒蛇之类的东西。
SELECT CASE WHEN (SELECT count(*)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = '{db0}' AND TABLE_NAME = '{table0}')=0
THEN 'None' ELSE (SELECT MAX({colname}) FROM {db0}.{table0}) END;如果我在它上面注入现有的表名,它会工作得很好。但是如果不存在,它会显示错误标志,说明这样的表不存在。(表'corps.060311‘不存在)我该怎么办?
发布于 2021-09-25 04:12:47
这不能使用简单的查询来实现,因为MySQL在执行查询之前会对查询进行整体分析:它不是过程化语言,并且查询永远不会逐行执行。要在没有任何其他语言帮助的情况下完成您想要做的事情,必须使用存储过程:https://dev.mysql.com/doc/refman/8.0/en/create-procedure.html
因此,第一步是在数据库中添加一个新函数,该函数将包含"if table exists“部分(有关if语句,请参见https://dev.mysql.com/doc/refman/8.0/en/if.html ),并将根据在函数输入中以字符串形式提供的模式、表和列返回所需的值。然后,您可以在数据库中的任何查询中使用该函数。
https://stackoverflow.com/questions/69322885
复制相似问题