我刚刚读到VARCHAR(MAX)
数据类型(可以存储接近2GB的char数据)是TEXT
SQL Server 2005和Next SQL SERVER版本中数据类型的推荐替代品.
如果我想在列中搜索任何字符串,哪个操作更快?
LIKE
对VARCHAR(MAX)
列使用该子句?
WHERE COL1 LIKE '%search string%'
使用该TEXT
列并在此列上放置全文索引/目录,然后使用该CONTAINS
子句进行搜索?
WHERE CONTAINS (Col1, 'MyToken')
我一直在使用Mercurial,但主要是供我自己使用.现在,我有一个项目,我正在努力建立同一个项目,我们可能会修改彼此的文件.
我想在服务器上设置Mercurial存储库,使该存储库成为"服务器",因此我的更改和其他编辑器的更改都推送到该服务器(所以基本上是Subversion/CVS模型); 我喜欢Mercurial但不想切换到像Subversion这样的东西.
在我自己的网络中,一切都在Linux上完成,我的"服务器" 安装了OpenSSH.因此,将我的更改(我在多台计算机上工作)从一台计算机推送到服务器只是"hg push"的问题; 使用的协议是SSH以传输更改.
问题是我使用Linux,服务器将是Windows(所以没有OpenSSH,对吧?)而另一个编辑器也将使用Windows.据我所知,在这些类型的设置中使用Mercurial的最佳方式是存储库从源中提取更改,而不是将源推送到"服务器".我落后于几个防火墙(不完全是我的网络),我的计算机将无法从服务器上看到,我假设其他编辑器也将在防火墙后面(所以我们不能只启动本地Mercurial HTTP服务器并从中获取"服务器"计算机).
对于两位编辑来说,更改服务器存储库的最佳方法是什么?(我应该补充一点,服务器是因特网上的服务器,因此它就像是一样可见google.com
.它是托管的Windows服务器,但如果需要,我可能有权安装软件.)
我有一张桌子:
mytable:
id
userID
logDate
lastLogDate
Run Code Online (Sandbox Code Playgroud)
对于该表中的每一行,我想将'lastLogDate'列更新为每个用户的logDate的最大值...
从概念上讲,每个用户都应该有一个lastLogDate =返回的值:
select max(logDate) from mytable group by userID
Run Code Online (Sandbox Code Playgroud)
有人可以帮我写那个更新声明吗?
我有一个标准的GWT应用程序,它当然在后端使用Java servlet.此servlet部署在Tomcat和Windows Server上.
我知道它违反了规则/建议,但我在这个servlet中有一个线程,它在servlet初始化时启动(servlet的"init"方法).该线程是各种调度程序,其目的是在某些时间执行不同的数据库任务,完全独立于GWT应用程序/接口本身.
我需要的是在部署战争后立即调用servlet的"init"方法.现在我一直在做的是,每当升级到应用程序时,我就把战争放到正确的目录中,然后我必须"登录"到应用程序GWT应用程序,以便调用它的"init"方法.我希望在战争更新后立即调用servlet的init方法,这样我就不必登录GWT应用程序来执行此操作.
有任何想法吗?
我有一个包含多个列的数据库表; 其中大多数是VARCHAR(x)
类型列,其中一些列有一个索引,以便我可以快速搜索其中的数据.
但是,其中一列是一TEXT
列,因为它包含非常大量的数据(23 kb的普通ascii文本等).我希望能够在该列(... WHERE col1 LIKE '%search string%'...
)中进行搜索,但目前正在执行查询.我知道由于这个列搜索,查询很慢,因为当我从WHERE
子句中删除该条件时,查询就会立即完成(我会考虑).
我无法在此列上添加索引,因为该选项在SQL Server Management Studio的索引构建器/向导中对该列显示为灰色.
我有什么选择,加快该列中的查询搜索?
谢谢你的时间...
更新
确定,所以我查看了全文搜索并完成了所有这些工作,现在我想运行查询.但是,当使用"包含"时,它只接受一个单词; 如果我需要一个确切的短语怎么办?... WHERE CONTAINS (col1, 'search phrase') ...
抛出错误.
对不起,我是SQL Server的新手
更新2 对不起,刚想通了; 使用多个"contains"子句而不是一个包含多个单词的子句.实际上,这仍然没有得到我想要的(确切的短语)它只能确保短语中的所有单词都存在.
在java中,我有一个这样的类:
public class MyClass extends Properties {
public StringProperty prop1 = new StringProperty(this, "default value for prop1");
public StringProperty prop2 = new StringProperty(this, "prop2 default val");
}//MyClass
Run Code Online (Sandbox Code Playgroud)
父类"Properties"使用反射来查找自身中的所有公共字段,并根据需要使用值填充变量.
我如何在scala中扩展属性?使用var prop1:StringProperty ...
不起作用,我假设由于scala如何将私有字段转换为... set ...类型方法.
假设我有一个名为"shape"的抽象父类,并且有多个子类(三角形,正方形,圆形......).我想在父"shape"类中定义一个抽象方法,所有子类都必须实现,我们称之为"draw".因此,所有形状子类都必须提供"draw()"方法.但是,draw方法采用"Stencil"类型的参数,并不是每个形状子类都可以使用任何模板......
因此,有一个抽象的"形状"类,多个形状子类和多个模板.我需要在shape类中定义一个draw方法.正方形可能使用Stencil1,圆圈可能使用Stencil2.
我猜这些泛型可以解决问题,但我不确定.每个形状子类都需要使用特定的模板定义draw方法,因为这些类也被其他类使用,编译器应该强制所有程序员使用该类支持的模板调用draw方法.我们不能定义像"public abstract void draw(Stencil s)"这样的抽象方法,因为那时程序员可以将任何模板传递给square类,而square类只支持"Stencil1"
有任何想法吗?
Update1: 应该补充一下,shape类不关心子类使用哪个模板,但由于子类也在其他类中使用,因此定义draw方法以便编译器只接受支持的模板是很重要的. .
我正在寻找一个reg表达式,其含义与linux/windows命令行中的"*"运算符完全相同.例如,查找所有文件:以0或更多随机字符开头,中间包含"abc",以0或更多随机字符结束.
Java中就是这样的:
if (test.match("*abc*"))
System.out.println("found match");
Run Code Online (Sandbox Code Playgroud) java ×2
sql-server ×2
field ×1
indexing ×1
mercurial ×1
overriding ×1
performance ×1
public ×1
regex ×1
scala ×1
sql ×1
sql-types ×1
text ×1
tomcat ×1
varchar ×1