通过避免冗余来编写更好的SQL代码

fre*_*iew 1 mysql sql

我有这样的SQL查询:

SELECT Code 
FROM xyz 
WHERE xyz.Code  IN  ('20','10') AND price = 
    (select min(price) FROM xyz  WHERE CODE IN  ('20','10'));
Run Code Online (Sandbox Code Playgroud)

查询后所需的输出:10

表xyz: -

价格:1 2 1

代码:10 20 30

有没有更好的方法来编写这个sql语句?因为在我的sql语句中"WHERE CODE IN('20','10')"重复两次,我试图避免两次调用此语句

Mar*_*ers 6

如果您只想接收一行,可以使用ORDER BY和LIMIT:

SELECT Code
FROM xyz
WHERE xyz.Code IN ('20','10')
ORDER BY price
LIMIT 1
Run Code Online (Sandbox Code Playgroud)