c# 遍历 Mysql 所有表所有列,查找目标数据
在 Mysql 的 information_schema 库中 COLUMNS 表中存放了所有表的所有列。
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
List<MyTable> list = GetTableList();
Query(list, "1111aaaa");
Console.WriteLine("over");
Console.ReadLine();
} static List<MyTable> GetTableList()
{
using (MySqlConnection conn = GetConnection())
{
Dictionary<string, MyTable> dic = new Dictionary<string, MyTable>();
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select table_name, column_name from information_schema.columns where table_schema = 'lpet6plusdb';";
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
string table = reader.GetString("table_name");
string column = reader.GetString("column_name");
if (dic.ContainsKey(table))
{
dic[table].ColumnList.Add(column);
}
else
{
MyTable t = new MyTable();
t.Table = table;
t.ColumnList.Add(column);
dic.Add(t.Table, t);
}
}
}
return dic.Values.ToList();
}
} static void Query(List<MyTable> list, string str)
{
using (MySqlConnection conn = GetConnection())
{
MySqlCommand cmd = conn.CreateCommand();
foreach (MyTable table in list)
{
foreach (string column in table.ColumnList)
{
cmd.CommandText = string.Format("select count(*) from {0} where `{1}` like '%{2}%'", table.Table, column, str);
object obj = cmd.ExecuteScalar();
if (Convert.ToInt32(obj) > 0)
{
Console.WriteLine(string.Format("TableName: {0}, ColumnName: {1}", table.Table, column));
}
}
}
}
} static MySqlConnection GetConnection()
{
MySqlConnection conn = new MySqlConnection("server=localhost;port=3306;user id=userid;password=pass;database=mydb;pooling=true;ConnectionTimeout=1800");
conn.Open();
return conn;
}
} public class MyTable
{
public string Table { get; set; }
public List<string> ColumnList { get; set; } = new List<string>();
}
}
c# 遍历 Mysql 所有表所有列,查找目标数据的更多相关文章
- MySQL将表a中查询的数据插入到表b中
MySQL将表a中查询的数据插入到表b中 假设表b存在 insert into b select * from a; 假设表b不存在 create table b as select * from a ...
- MYSQL单表可以存储多少条数据???
MYSQL单表可以存储多少条数据??? 单表存储四千万条数据,说MySQL不行的自己打脸吧. 多说一句话,对于爬虫来说,任何数据库,仅仅是存储数据的地方,最关心的是 能否存储数据和存储多少数据以及存储 ...
- mysql修改表和列
mysql修改列 mysql增加列,修改列名.列属性,删除列语句 mysql修改表名,列名,列类型,添加表列,删除表列 alter table test rename test1; --修 ...
- MySql给表添加列和注释
1.给表添加列 ALTER TABLE supplier_seller ADD COLUMN company_id INT NULL COMMENT '供应主体id'; 默认情况下,添加的列会添加到最 ...
- Mysql 数据库 表中列的操作
[1]Mysql数据库中表的列操作 Mysql中关于表中列的操作集语句: -- [1]增加一列 ) DEFAULT NULL COMMENT '目的码区号'; -- [2]增加一列,在dnis_are ...
- MySQL之表、列别名及各种JOIN连接详解
MySQL在SQL中,合理的别名可以让SQL更容易以及可读性更高.别名使用as来表示,可以分为表别名和列别名,别名应该是先定义后使用才对,所以首先要了解sql的执行顺序(1) from(2) on(3 ...
- mysql建表以及列属性
一.整型( int, tinyint, smallint 等 ) ------------------------------------------------------------------- ...
- mysql查看表中列信息
查看所有数据库中所有表的数据库名和表名 SELECT `TABLES`.`TABLE_SCHEMA`, `TABLES`.`TABLE_NAME` FROM `information_schema`. ...
- MYSQL 获取表的列信息
SELECT COLUMN_NAME as '列名' ,DATA_TYPE as '字段类型' ,COLUMN_TYPE as '长度加类型' FROM information_schema.`COL ...
随机推荐
- MyEclipse创建maven项目时报: org.apache.maven.archiver.MavenArchiver.getManifest 错误
创建项目报错,如图: 原因就是maven的配置文件不是最新的,MyEclipse2014解决方法: 1.help ->Install New sitie... 2.点击add 3.填写name和 ...
- 295-Xilinx Kintex-7 X7K325T的半高PCIe x4双路万兆光纤收发卡
Xilinx Kintex-7 X7K325T的半高PCIe x4双路万兆光纤收发卡 一.板卡概述 本板卡系我公司自主研发,采用Xilinx公司的XC7K325T-2FFG676I芯片作为 ...
- 给定中序和后序遍历,求前序序列(C++递归方式实现)
问题: 输入后序和中序,求中序遍历. 算法: void f2(string &pre,string in, string post) { ) //序列为空结束 return; ; //根节点 ...
- yara规则的二进制漏洞
https://www.anquanke.com/post/id/147675 yara32.exe 后缀.yar
- IDA Pro - 如何得到比较清楚的逆向伪代码
原文地址:Question about disassembler 简介 这篇文章介绍了如何在不使用插件的IDA Hex-Rays如何得到比较清晰的伪代码.IDA Hex-Rays功能很强大,只要你提供 ...
- CSS实现三级菜单[转]
头部导航条布局 html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- Windows 搭建MongoDB分片集群(二)
在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程 ...
- maven仓库mirrors
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> & ...
- python代码整体左移或右移
IDE 是 PyCharm 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab
- 【leetcode】823. Binary Trees With Factors
题目如下: Given an array of unique integers, each integer is strictly greater than 1. We make a binary t ...