mySQL версия предложения with - PullRequest
       22

mySQL версия предложения with

2 голосов
/ 14 декабря 2009

Цель моего запроса - поиск длинной строки в базе данных. Чтобы ускорить этот процесс, все записи таблицы 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?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 14 декабря 2009

Вы можете сделать это с помощью дополнительного выбора:

select *
from (
  select long_string
  from longstring
  where hash = 'searchhash'
) AS dataset
where long_string = 'searchstring'
2 голосов
/ 14 декабря 2009

Это то же самое, что и предложение AND .

SELECT  *
FROm longstring
WHERE hash = 'searchhash'
AND long_string = 'searchstring'
...