用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?相关的知识,希望对你有一定的参考价值。

这需要用存储过程来实现,基本方法如下,比如查找全库中所有字段值为“张三”的属于哪张表,可用如下方法:

declare @cloumns varchar(40)
declare @tablename varchar(40)
declare @str varchar(40)
declare @counts int
declare @sql nvarchar(2000)
declare MyCursor Cursor For 
Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c 
where a.id = b.id
and b.type = \'U\' 
and a.xtype=c.xtype
and c.name like \'%char%\'
set @str=\'张三\'
Open MyCursor
Fetch next From MyCursor Into @cloumns,@tablename
While(@@Fetch_Status = 0)
Begin
 set @sql=\'select  @tmp_counts=count(*) from \' +@tablename+ \' where \' +@cloumns+\' = \'\'\' +@str+ \'\'\'\'
execute sp_executesql  @sql,N\'@tmp_counts int out\',@counts out
 if @counts>0
 begin
 print \'表名为:\'+@tablename+\',字段名为\'+@cloumns
 end
Fetch next From MyCursor Into @cloumns,@tablename
End
Close MyCursor
Deallocate MyCursor

结果如图:

显示的就是含有张三这个内容的表名及字段名

参考技术A 不知道表名的情况下,整个数据库找某个字符信息

http://hi.baidu.com/wangzhiqing999/blog/item/f4a8456659df8fd2e6113a0d.html

请勿在 生产数据库上使用.本回答被提问者采纳
参考技术B 楼上~~反了吧
UPDATE table SET newcol = oldcol

参考资料:百度一下

参考技术C T newcol = oldcol 参考技术D 这个不同的数据库是不同的

两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写

A 表
NUM VALUE1 VALUE2
123000 测试1 测试2
123001 测试3 测试4
123002 测试5 测试6
123003 测试7 测试8

B 表
NO VALUE3 VALUE4
12300024222 测试1 测试2
12300346433 测试7 测试8
12300268675 测试5 测试6
12300087538 测试1 测试2

有这样两张表,A和B,现在需要将B表中NO字段的值跟A表的NUM字段对比,如果B表的NO的字段包含了A表的某一行的NUM的值,则将A表这一行的VALUE1和VALUE2的值复制到B表的VALUE3和VALUE4中。
A表和B表的数据量都比较大,以上只是示例。

请问sql语句怎么写?

参考技术A update A,B set B.value3 = A.value1,B.value4=A.value2 where B.NO=A.NUM;

补充一句,这个是mysql语法追问

B.NO和A.NUM这两个是不会等于的啊
B表的NO字符比A表的MUN字符要多,B.NO包含在A.NUM中

追答

那你改一下where条件就好了啊

where B.NO LIKE CONCAT('%',A.NUM,'%');

以上是关于用sql语句查找一个字段值存在于哪张表,该怎么写SQL语句?的主要内容,如果未能解决你的问题,请参考以下文章

用sql语句查找某一行的一个值并返回那个值,怎么写? 请将详细点 ,谢谢

SQL中只知道字段名,要查在哪张表怎么查啊

两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写

SQL SERVER,一张表中,有多个字段关联另一张表,怎么写SQL语句?

MYSQL表中新增字段指定位置,SQL语句该怎么写?

定义了Mapper接口,但是没有写任何SQL,MybatisPlus是如何知道该查询哪张表呢?