根据表名称快速查询表所有字段是否包含特定数据筛选

当前需要清理某个表中所有字段,检查是否有包含@DEl@字符的脏数据,如果字段比较少的直接根据字段查询即可,但是如果有几十个字段的话,逐个检查会很慢。

当前使用的方式是:
1:根据表名称获取当前表所有的字段
2:通过字段拼接的方式构建一个筛选条件
3:使用这个统一的一个字段进行查询

以oracle为例:

 SELECT ' ' || LISTAGG(COLUMN_NAME, ' ||  ') WITHIN GROUP(ORDER BY COLUMN_ID) AS full_select_sql
   FROM ALL_TAB_COLUMNS
  WHERE TABLE_NAME = '表名称'
  GROUP BY TABLE_NAME;

根据表名称快速查询表所有字段是否包含特定数据筛选_第1张图片

SELECT
	t.ROWID,
	t.* 
FROM
	my_table_name  t 
WHERE
	( COLOR || CART_TYPE || CART_LENGTH ||  其他字段...) LIKE '%@DEL@%';

通过这种方式相对来说可以更加快速匹配数据和定位问题字段。

你可能感兴趣的:(数据库,chrome,前端,sql)