我查询的目标是在数据库中搜索长字符串。为了加快这个过程,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'

10-08 04:05