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 に答える