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

Цель моего запроса - поиск длинной строки в базе данных. Чтобы ускорить этот процесс, все записи longstring таблица имеет хэш этой строки в той же записи. Я хочу сначала найти все записи в таблице, где хэш моей строки поиска равен хешу на longstring Таблица. Затем, получив этот набор данных, я хочу сравнить фактические строки (поскольку хеши не всегда уникальны).

Теперь в оракуле или MSSQL я бы сделал это...

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

... но mysql не поддерживает предложения with. Так, какова моя лучшая альтернатива в MySQL?

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

2 ответа

Решение

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

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

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

SELECT  *
FROm longstring
WHERE hash = 'searchhash'
AND long_string = 'searchstring'
Другие вопросы по тегам