首页 > 数据库 >一些SQL小技巧,不定期更新...

一些SQL小技巧,不定期更新...

时间:2023-09-21 13:11:59浏览次数:46  
标签:... 不定期 sync 查询 result SQL table array SELECT

要将查询结果作为IN语句的查询条件,查询结果作为子查询,并在主查询中使用IN子句。

SELECT table_ids
    FROM cdc_table_sync
    WHERE sync_id = 'FLINK_CDC_SYNC_TABLE_198';

结果为:c2a9f78ecc3f6a6c97c12956d25e1adc,24d883d4a419578d09dd3801f001b93e,f3e569a5c68023c76b5bb22e25768739,df9e3fe91219ce1d042ee84a0b4b58ea,465d014da17e858fd16bca733141126a,6572ff4511b9164bffb1bfbc480d364e
这样的字符串

SELECT *
FROM your_table
WHERE column_name IN (
  SELECT split_part(result, ',', generate_series(1, array_length(string_to_array(result, ','), 1))) AS element
  FROM (
    SELECT string_agg(quote_literal(table_ids) || ',', '') AS result
    FROM cdc_table_sync
    WHERE sync_id = 'FLINK_CDC_SYNC_TABLE_198'
  ) subquery
);

your_table替换表名,column_name`替换为进行IN匹配的列名。

这里将首先使用之前提供的查询语句,将查询结果以逗号分隔并加上单引号。然后,使用string_to_array函数将结果拆分为一个数组。接下来,通过generate_series函数生成一个序列,用来获取数组中的每个元素。最后,使用split_part函数将每个元素分别作为子查询的结果,并在主查询中使用IN子句。

当主查询执行时,它将比对指定列的值与子查询的结果,如果匹配则返回相应的行。

标签:...,不定期,sync,查询,result,SQL,table,array,SELECT
From: https://www.cnblogs.com/lehoso/p/17719720.html

相关文章

  • mysql 时间函数
    MySQL日期跟时间函数(一)作者:Mr.ZhangMySQL日期跟时间的样式在MySQL中有很多有用处的日期跟时间函数。我们常常看到许多应用于日期的计算是在代码方面上进行的,但是其实他们完全可以使用MySQL中自带的函数来实现。在我们实际的查看MySQL的时间跟日期函数之前,先让我们看看MySQL的......
  • sql语句备忘(dba)
    user_tab_comments;表注释   user_col_comments;表字段注释   以上两个只能获取自己用户的表的注释信息,如果要访问自己能够访问的其他用户的表,则需要使用:   all_tab_comments;表注释   all_col_comments;表字段注释   当然,如果有DBA权限,则可以使用   dba_tab_co......
  • 【mysql】基础
    基本命令#ROOT用户进入数据库mysql-uroot-p#使用用户登录数据库mysql-u用户名-p#重启mysqlsudoservicemysqlrestart#创建数据库createdatabase数据库名字charactersetutf8mb4collateutf8mb4_unicode_ci;#进入数据库usemysql_name;#查看所......
  • 慢SQL原因分析之索引失效
    现象最近收到一个慢sql工单,慢sql大概是这样:“selectxxxfromtabelwheretype=1”。咦,type字段明明有索引啊,为啥是慢sql呢?原因通过执行explain,发现实际上数据库执行了全表扫描,从而被系统判定为慢sql。这时有一定开发经验的同事会说:“字段区分度不够,这种字段作单独索引是......
  • mysql 日期和时间函数
    type值含义期望的expr格式SECOND秒SECONDSMINUTE分钟MINUTESHOUR时间HOURSDAY天DAYSMONTH月MONTHSYEAR年YEARSMINUTE_SECOND分钟和秒"MINUTES:SECONDS"HOUR_MINUTE小时和分钟"HOURS:MINUTES"DAY_HOUR天和小时"DAYSHOURS"YEAR_MON......
  • mysql 其他函数
    ......
  • Access SQL 函数
    ▲日期/时间CDate 将字符串转化成为日期selectCDate("2005/4/5")Date 返回当前日期DateAdd 将指定日期加上某个日期selectdateAdd("d",30,Date())将当前日期加上30天,其中d可以换为yyyy或H等DateDiff判断两个日期之间的间隔selectDateDiff("d","2006-5-1","2006-6-1")......
  • donet 常用命令汇总......
    dotnetnew:用于创建新的.NET项目。示例:创建一个名为"MyConsoleApp"的控制台应用程序项目。dotnetnewconsole-nMyConsoleAppdotnetbuild:用于构建.NET项目。示例:构建当前目录中的项目。dotnetbuilddotnetrun:用于运行.NET应用程序。示例:......
  • 解决ubuntu进入tty1...6后显示中文乱码的问题
    一、临时解决(足够)例如,进入tty2,查看$LANG和$LANGUAGE:$echo$LANGzh_CN.UTF-8;是什么不重要,这里主要是反映修改前后的不同$echo$LANGUAGEzh_CN:zh:en_US:en;是什么不重要,这里主要是反映修改前后的不同实验一下没有修改前的tty的输出:$rmfilerm:###&&**乱码修改设置,......
  • 数据库sql中判断时间冲突
    数据库现有数据其中两列:s-开始时间,e-结束时间.在新插入数据s',e'之前需要判断两个时间之间是否有重合因为使用mybatis-plus的缘故,结论都使用s或e在符号前面.1.s<e比如yyyy-MM-ddHH:mm:ss格式的数据,多用于判断预约时间和每日排班冲突.对于冲突的情况使用列......