首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql)选择值(如果表存在

问mysql)选择值(如果表存在
EN

Stack Overflow用户
提问于 2021-09-25 03:20:44
回答 1查看 36关注 0票数 1

如果存在这样的表,我会尝试选择所有值。如果它不存在,就别管它了。我只想在一段MYSQL代码中做到这一点。而不是用蟒蛇之类的东西。

代码语言:javascript
复制
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‘不存在)我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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 ),并将根据在函数输入中以字符串形式提供的模式、表和列返回所需的值。然后,您可以在数据库中的任何查询中使用该函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69322885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档