gpt4 book ai didi

php - 嵌套查询sql,无法执行

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:02 26 4
gpt4 key购买 nike

我想比较一些 float 值。要做,我的查询是这样的:

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_FREQUENCYSTOP_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 时,他应该得到 Row1Row2Row3 的结果

最佳答案

不应引用您的内部 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' 无效。


更新:听起来你只是把它复杂化了。我想你只是想要这个(使用你的 0.4 和 1.9):

select *
from pricelist
where START_FREQUENCY >= 0.4
and STOP_FREQUENCY <= 1.9

关于php - 嵌套查询sql,无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7845407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com