我查询的目标是在数据库中搜索长字符串。为了加快这个过程,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中,我最好的选择是什么呢?
提前谢谢!
最佳答案
您可以使用子选择来执行此操作:
select *
from (
select long_string
from longstring
where hash = 'searchhash'
) AS dataset
where long_string = 'searchstring'