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

标签 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'));

查询后的期望输出:10

表 xyz :-

价格:1 2 1

代码:10 20 30

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

最佳答案

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

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

关于mysql - 通过避免冗余编写更好的 SQL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430657/

相关文章:

mysql - 错误代码 : 1054 Unknown column in 'where clause'

mysql - 按聚合函数分组以计算行数,将计数映射到用户组

PHP MySQL 总日期范围

php - MySQL:在获取的列表中突出一些结果,例如第一个

mysql - SQL查询多个系统上的相同表

SQL 递归 CTE 'where-used'/BOM 爆炸第 2 部分

sql - 无法使用 monotouch 连接到 sql azure 数据库

sql - 如何在SQL Server Compact中获取特定表的当前标识号

mysql - 如何选择具有唯一元素的对的最大子集?

php - 元搜索查询问题