gpt4 book ai didi

sql - 检查表名是否包含日期

转载 作者:行者123 更新时间:2023-11-29 14:34:38 25 4
gpt4 key购买 nike

我试图找出名称以 yyyy_mm_dd 结尾的所有表,例如 temp_2017_10_01alpha_2016_11_02

目前我正在尝试这样做:

SELECT table_name 
FROM information_Schema.tables
WHERE table_name LIKE '%2017_%'
OR table_name LIKE '%2016_%'
OR table_name LIKE '%2015_%'

这样做的优雅方式是什么?

最佳答案

你可以尝试像这样使用正则表达式:

SELECT table_name 
FROM information_Schema.tables
WHERE table_name ~* '201[567]_.*'

这将查找 2015、2016 和 2017 年。如果您想要一个更通用的模式来查找任何日期,您可以使用这个:

SELECT table_name 
FROM information_Schema.tables
WHERE table_name ~* '[0-9]{4}_[0-9]{2}_[0-9]{2}'

严格来说,上面的模式现在太通用了,因为它允许像 9999_99_99 这样的日期不是有效日期。但我的猜测是这对于您的用例来说已经足够好了,因为您不尝试验证表名,只是提取它们。

关于sql - 检查表名是否包含日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47028235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com