Версия mySQL с условием "с"

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

Теперь в oracle или mssql я бы сделал это...

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

... но mysql не поддерживает "с" предложениями. Итак, какова моя лучшая альтернатива в mysql?

Спасибо заранее!

+2
источник поделиться
2 ответа

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

select *
from (
  select long_string
  from longstring
  where hash = 'searchhash'
) AS dataset
where long_string = 'searchstring'
+4
источник

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

SELECT  *
FROm longstring
WHERE hash = 'searchhash'
AND long_string = 'searchstring'
+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос