在SQL Server 2005所有表中搜索某个指定列的方法
作者:mdxy-dxy 发布时间:2024-01-21 22:50:25
有时候我们只知道列的名字,但是不知道这列数据到底在哪个表里面,那么可以用下面的办法把含有这列数据的表查找出来。
Select O.name objectName, C.name ColumnName from sys.columns C inner join sys.objects O ON C.object_id=O.object_id where C.name like '%ColumnName%'order by O.name, C.name
在你实际试用中,把ColumnName换成你要查的列的名字就可以了。
字符串在某字段里时,如何写搜索的SQL语句
问题描述:
经常遇到这种问题,我们搜索的条件是某字符串包含在某字段,如果是某字段包含在某字符串,我们知道可以用in,
如sql="select * form tb where tb.name in(" & names & " )”
注释:name是表tb的字段,name是获得的字符串,该句查询字段name在给的字符串names里的所有集合)
这种方法自然不必多说,但我们通常遇到的问题是“反着来”,即 "name"字符串 在 tb.name表字段里,如,表tb的name字段值为:张三,李四,王五,赵六
而我们要查询的name=张三,这就要判断当表的name字段包含查询条件,也就是有“张三”时,即为符合查询
解决方法:
1、最先想到的当然是like查询(并非终极解决方案,终极方法继续往下看)
如sql="select * form tb where tb.name like '%" & 张三 & "%' ”
解释一下,这个语句,能查询到所有表的name字段里有”张三“的集合,可是,假设有人的名字叫”秦张三八“,他的名字不管爹妈怎么取的,总之也有”张三“两个字,这样很显然也符合查询情况,那么他自然也会被查询出来,而我们只要”张三“,不要”秦张三八“,看下一步
2、试想一下,如果字段里的值不是“张三,李四,王五,赵六”,而是“,张三,李四,王五,赵六,”
发现什么了?
是的,字符串前后多了个逗号,这就有用了,因为逗号可以作为限制条件,如果“秦张三八”此时也在这个字段里,他的前后也有逗号,这样按逗号来控制查询,就精确到位了
好了,改写查询成:sql="select * form tb where tb.name like '%," & 张三 & ",%' ”
到此,原理和解决方法就已经全部说完了,但是,你可能还会遇到以下问题,继续看第三步。
3、有时类似这种带逗号的字段都是我们在保存的时候勾选了多选check得来的值,这时写入数据库的时候,会自动在不同的check值后加上逗号,
比如,请选择你的兴趣爱好,你可能会勾选“看书(value=1)”,“听歌(value=21)”,“爬山(value=13)”
此时得到的值就是xingquaihao="1, 21, 13",将这个字段保存,在数据库里也就是这种格式,但是此时如果直接按照上面的查询方式来查询的话,
直接用:sql="select * form tb where xingquaihao like '%" & 1 & "%' ” 将得到所有含1的,就算是21、13中的1,也会被查出来
将字段前后加上逗号,变成“,1, 21, 13,”的时候,如果我们查21或者13,改成:sql="select * form tb where xingquaihao like '%," & 21 & ",%' ” 结果是什么都查不出来
为什么明明有值,却查不出来呢?
因为自动勾选,然后保存的字段中间有空格,比如“1, 21, 13”,1的后面是一个逗号,逗号后面是一个空格,然后才是21
解决方法很简单了,在勾选完后,入库前把空格去掉,
xingquaihao="1, 21, 13"
xingquaihao=replace(xingquaihao," ","") '将空格删除
如此得到的就是紧凑型的值了,再按照上面的方法查询,搞定!
猜你喜欢
- 前言最近很多新入职的同事问这个问题,特别是通过 homebrew 自动安装的 mysql ,其版本默认已经是 8.0 了,由于增加了一些安全
- import osimport sysimport ftplibimport socket#########################
- 先看看那种容易被注入的SQL id = 11001 sql = """
- 最近看《python核心编程》,书中实现了一个简单的1对1的TCPserver,但是在实际使用中1对1的形势明显是不行的,所以研
- 直接赋值: 对象的引用,也就是给对象起别名浅拷贝: 拷贝父对象,但是不会拷贝对象的内部的子对象。深拷贝: 拷贝父对象. 以及其内部的子对象在
- 啥也不说了,大家还是直接看图吧!补充知识:python http request header主要内容http request 请求头主要包
- Django默认支持Session,并且默认是将Session数据存储在数据库中的修改session存取放在数据库中SESSION_ENGI
- 本文实例讲述了关于php中SimpleXML 函数的用法,此函数是允许您把 XML 转换为对象,分享给大家供大家参考。具体分析如下:Simp
- 网页过渡是指当浏览者进入或离开网页时,页面呈现的不同的刷新效果,比如卷动、百叶窗等。这样你的网页看起来
- 今天尝试了一下据说最好用的编译器Jupyter Lab,安装期间遇到了很多问题,以此为记录。1.安装jupyter labjupyter l
- 学习目标1.掌握pytorch模型转换到onnx模型2.顺利运行onnx模型3.比对onnx模型和pytorch模型的输出结果学习大纲pyt
- 最近需要用Python写一个简易通讯录,但是对于数据存储很发愁。大家都知道,使用 Python 中的列表和字典进行存储数据是很不靠谱的,所以
- yolov5训练命令python .\train.py --data my.yaml --workers 8 --batch-size 32
- jupyter notebook使用matlab以下方法前提是已经安装了matlab程序,如果没有请安装后再执行以下步骤1.MATALB安装
- Python FastAPI请求参数传递FastAPI多参数传递类型FastAPI通过模板来匹配URL中的参数列表,大致有如下三类方式传递参
- 本文借用HTML的css语法,将样式表应用到窗口部件。这里只是个简单的例子,实际上样式表的语法很丰富。以下类似于css: StyleShee
- ImageDataGenerator的参数自己看文档from keras.preprocessing import imageimport
- 前言今天我们一起来聊聊DataFrame中的索引。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如ilo
- 通过python与ffmpeg结合使用,可生成进行视频点播、直播的压力测试脚本。可支持不同类型的视频流,比如rtmp或者hls形式。 通过如
- 函数的返回值返回结果要怎么做,多个结果又要怎么做# 函数返回值# 概念:函数执行完以后会返回一个对象,如果在函数内部有return 就可以返