Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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
Javascript postgresql查询以随机顺序返回_Javascript_Sql_Database_Postgresql - Fatal编程技术网

Javascript postgresql查询以随机顺序返回

Javascript postgresql查询以随机顺序返回,javascript,sql,database,postgresql,Javascript,Sql,Database,Postgresql,我正在尝试创建一个SQL查询,查询数据库并返回有关各个机场的信息 基本查询工作正常,但结果以随机顺序返回 SELECT * FROM airportdata WHERE airportcode LIKE 'LHR' OR airportcode LIKE 'HKG' 按照传递到查询中的顺序返回它们非常重要(即LHR中的机场数据是返回的第一个结果,然后是HKG的机场信息),但是我无法找到任何顺序 显然,我应该使用FIND_IN_SET,但是我已经尝试了所有的变体,我无法让它工作 SELECT *

我正在尝试创建一个SQL查询,查询数据库并返回有关各个机场的信息

基本查询工作正常,但结果以随机顺序返回

SELECT * FROM airportdata WHERE airportcode LIKE 'LHR' OR airportcode LIKE 'HKG'

按照传递到查询中的顺序返回它们非常重要(即LHR中的机场数据是返回的第一个结果,然后是HKG的机场信息),但是我无法找到任何顺序

显然,我应该使用FIND_IN_SET,但是我已经尝试了所有的变体,我无法让它工作

SELECT * FROM airportdata WHERE airportcode LIKE 'LHR' OR airportcode LIKE 'HKG' ORDER BY FIND_IN_SET(airportcode,'LHR,HKG')
有人能看出我做错了什么吗?谢谢

使用此查询:

SELECT * 
FROM airportdata 
WHERE airportcode LIKE 'LHR' OR airportcode LIKE 'HKG' 
ORDER BY CASE WHEN airportcode LIKE 'LHR' THEN 1 ELSE 0 END
使用此查询:

SELECT * 
FROM airportdata 
WHERE airportcode LIKE 'LHR' OR airportcode LIKE 'HKG' 
ORDER BY CASE WHEN airportcode LIKE 'LHR' THEN 1 ELSE 0 END

我建议您在中使用
。然后,您可以使用

SELECT *
FROM airportdata
WHERE airportcode IN ('LHR', 'HKG')
ORDER BY position(airportcode in 'LHR,HKG')
(这是安全的,因为机场代码应该是3个字符,并且没有逗号。)

如果您想像
(支持通配符)一样使用
,您可以
可以做:


这确实存在重复的风险,因为一个代码(理论上)可以匹配多个模式。如果这是一个真正的风险,您需要解释您喜欢哪种模式。

我建议您在
中使用
。然后,您可以使用

SELECT *
FROM airportdata
WHERE airportcode IN ('LHR', 'HKG')
ORDER BY position(airportcode in 'LHR,HKG')
(这是安全的,因为机场代码应该是3个字符,并且没有逗号。)

如果您想像
(支持通配符)一样使用
,您可以
可以做:


这确实存在重复的风险,因为一个代码(理论上)可以匹配多个模式。如果这是一个真正的风险,您需要解释您喜欢哪种模式。

可能需要一个CASE语句来构建排序键?“按照传递到查询中的顺序返回”-这意味着什么?我已经修改以澄清我的意思!干杯,为什么你要像
一样使用,而没有任何真正的模式?为什么它不只是
=
?那么
order by airportcode desc
?也许可以用一个CASE语句来构建排序键?“按传递到查询中的顺序返回”-这意味着什么?我已经修改以澄清我的意思!干杯,为什么你要像一样使用,而没有任何真正的模式?为什么不按机场代码说明订购呢?