Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中,如何将BETWEEN与';AS';柱_Mysql_Database_Between - Fatal编程技术网

在MySQL中,如何将BETWEEN与';AS';柱

在MySQL中,如何将BETWEEN与';AS';柱,mysql,database,between,Mysql,Database,Between,第1部分。如何在两个不同的“AS”列上搜索值 第2部分。如何列出与98最接近的前5个值? 查询示例: select TITLE.name, (TITLE.value-TITLE.msp) AS Lower, (TITLE.value+TITLE.msp) AS Upper FROM TITLE WHERE 98 BETWEEN Lower AND Upper; 对于第1部分),您需要使用嵌套的select,因为您不能将重命名的投影(selectpart)用作同一子选择中的

第1部分。如何在两个不同的“AS”列上搜索值

第2部分。如何列出与98最接近的前5个值?

查询示例:

select 
  TITLE.name, 
  (TITLE.value-TITLE.msp) AS Lower, 
  (TITLE.value+TITLE.msp) AS Upper 
FROM TITLE 
WHERE 98 BETWEEN Lower AND Upper;
对于第1部分),您需要使用嵌套的select,因为您不能将重命名的投影(
select
part)用作同一子选择中的谓词(
WHERE
part)

对于第2部分),使用
ORDER BY。。限制
以获得前5名。按最小绝对差排序至
98

SELECT t.* FROM (
  SELECT
    TITLE.name, 
    (TITLE.value-TITLE.msp) AS Lower, 
    (TITLE.value+TITLE.msp) AS Upper,
    (TITLE.value) AS Value
  FROM TITLE 
) t
WHERE 98 BETWEEN t.Lower AND t.Upper
ORDER BY ABS(98 - t.Value) ASC
LIMIT 5
对于第1部分),您需要使用嵌套的select,因为您不能将重命名的投影(
select
part)用作同一子选择中的谓词(
WHERE
part)

对于第2部分),使用
ORDER BY。。限制
以获得前5名。按最小绝对差排序至
98

SELECT t.* FROM (
  SELECT
    TITLE.name, 
    (TITLE.value-TITLE.msp) AS Lower, 
    (TITLE.value+TITLE.msp) AS Upper,
    (TITLE.value) AS Value
  FROM TITLE 
) t
WHERE 98 BETWEEN t.Lower AND t.Upper
ORDER BY ABS(98 - t.Value) ASC
LIMIT 5

错误1248(42000):每个派生表都必须有自己的别名。这就是我在这方面的错误example@Jammin:哎呀,我忘了那个特定的MySQL限制。有关响应,请参阅UpdateAnks。但是t.*指的是什么?@Jammin:
t.*
指的是嵌套的select/DERISTED表中的所有字段。即
名称
下部
上部
。将
t.*
替换为
*
t.name,t.Lower,t.Upper
,如果您愿意的话。错误1248(42000):每个派生表都必须有自己的别名。这就是我在这方面的错误example@Jammin:哎呀,我忘了那个特定的MySQL限制。有关响应,请参阅UpdateAnks。但是t.*指的是什么?@Jammin:
t.*
指的是嵌套的select/DERISTED表中的所有字段。即
名称
下部
上部
。将
t.*
替换为
*
t.name,t.Lower,t.Upper
,如果您愿意的话