十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一般在sql里搜索看你是模糊的还是已知的
双阳网站建设公司创新互联公司,双阳网站设计制作,有大型网站制作公司丰富经验。已为双阳成百上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的双阳做网站的公司定做!
已知道的就直接列名等于关键词的
模糊的就列名 Like关键词
举例:
已知道的:select * from table where column='关键词'
模糊的:select * from table where column like '%关键词%'
这里的的百分号可以自己调的.
例如你要查的是以关键词结尾的例那么就是:%关键词
总之%号是点位符号的意思,任何一个或多个字符都可以。如果只要一位好像是用下划线的,小线(_)括号里的,只带表一个字符,具体去查相关的通配符知识的。
返回字符串在表达式expression里第一次出现的位置,起始值从1开始算,没找就返回0
描述一下此函数的具体用法:
'%pattern%' 的用法类似于 like '%pattern%' 的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。
查找pattern的结束所在expression的位置,也就是从后面匹配起查找。
查询pattern首次出现的位置。
返回0,开头找不到就返回0,后面无论有多少都不管。
这就相当于精确匹配查找,也就是pattern,expression完全相等。
[] 是指定某些特殊的字符。
[^] 除[]之外的字符串。
如果你想这样做,肯定有这样的SQL,可以写出来。
不过肯定是不建议这么做,效率肯定会很低。
要自己拼SQL。只用SQL语句也能实现不过非常麻烦。
SQL SERVER 2000 中 sysobjects 这个表记录所有的表。
syscolumns 这个表记录所有的列。
可以通过联合查询查出所有的表中的字段,然后拼SQL,进行查询。
SELECT
表名=d.name,--case when a.colorder=1 then d.name else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
order by a.id,a.colorder
上面这个SQL是找到的数据库中所有表和列。
然后用游标,或其他的分析出所有的表和字段 拼接SQL然后查询吧。
这样的话,估计效率不是一般的慢。
建议还是找出具体那些字段中会存在你要查询的数据的具体表和列。然后进行查询,这样效率会快些。
上面那个2000中可以用
SQL SERVER 2005和2008存储表名和列名的表不一样,表结构也不一样