2

我的查询对象是在数据库中搜索一个长字符串。为了加快这个过程,longstring表的所有记录在同一记录上都有该字符串的散列。我想首先在表中找到我的搜索字符串的散列等于longstring表上的散列的所有记录。然后在我拥有该数据集之后,我想比较实际的字符串(因为哈希并不总是唯一的)。

现在在 oracle 或 mssql 中我会这样做......

with dataset as (
  select long_string
  from longstring
  where hash = 'searchhash'
) select *
from dataset
where long_string = 'searchstring'

...但 mysql 不支持 'with' 子句。那么在mysql中我最好的选择是什么?

提前致谢!

4

2 回答 2

4

您可以使用子选择来做到这一点:

select *
from (
  select long_string
  from longstring
  where hash = 'searchhash'
) AS dataset
where long_string = 'searchstring'
于 2009-12-14T19:35:42.333 回答
2

这与AND子句相同。

SELECT  *
FROm longstring
WHERE hash = 'searchhash'
AND long_string = 'searchstring'
于 2009-12-14T19:36:35.843 回答