Вложенный запрос sql, невозможно выполнить - PullRequest
0 голосов
/ 21 октября 2011

Я хочу сравнить некоторые плавающие значения.Для этого мой запрос выглядит так:

SELECT * FROM pricelist WHERE START_FREQUENCY >= '(
    SELECT START_FREQUENCY
    FROM pricelist
    WHERE START_FREQUENCY BETWEEN '0.49999' AND '0.50001'
)' AND STOP_FREQUENCY <= '(
    SELECT STOP_FREQUENCY
    FROM pricelist
    WHERE STOP_FREQUENCY BETWEEN '0.59999' AND '0.60001'
)'

Но в моем PHP он показывает «Невозможно выполнить запрос».Где я делаю не так?Пожалуйста, помогите

РЕДАКТИРОВАТЬ:

У меня есть таблица, где есть два поля, START_FREQUENCY и STOP_FREQUENCY.Я пытаюсь извлечь все значения, которые входят в частотный диапазон.Например, скажите

  START_FREQUENCY STOP_FREQUENCY
1            0.4            0.9
2            0.5            1.4
3            0.8            1.9

Когда пользователь введет start frequency = 0.4 and stop frequency = 1.9, он должен получить результаты Row1, Row2 и Row3.

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

Ваш внутренний SELECT не должен быть в кавычках.Попробуйте это:

SELECT * FROM pricelist WHERE START_FREQUENCY >= (
    SELECT START_FREQUENCY
    FROM pricelist
    WHERE START_FREQUENCY BETWEEN 0.49999 AND 0.50001
) AND STOP_FREQUENCY <= (
    SELECT STOP_FREQUENCY
    FROM pricelist
    WHERE STOP_FREQUENCY BETWEEN 0.59999 AND 0.60001
)

Я также удалил кавычки вокруг ваших чисел;MySQL преобразует их в числа за вашей спиной, но вам не нужно угадывать базу данных и делать больше работы.

Ваша версия имеет такую ​​структуру:

SELECT *
FROM pricelist
WHERE START_FREQUENCY >= '...'0.49999' AND '0.50001'...'
  AND STOP_FREQUENCY  <= '...'0.59999' AND '0.60001'...'

И 'string'0.49999' isn 't действует.


Обновление: Похоже, вы просто слишком усложняете это.Я думаю, вы просто хотите это (используя ваши 0,4 и 1,9):

select *
from pricelist
where START_FREQUENCY >= 0.4
  and STOP_FREQUENCY  <= 1.9
1 голос
/ 21 октября 2011

Попробуйте запрос в клиенте командной строки MySQL или в другой более прямой среде, чтобы вы могли увидеть фактическую ошибку, генерируемую базой данных.

Скорее всего, это связано с использованием кавычек вокругподзапросы, которых там быть не должно.

...