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'