MySql LIMIT 1子句的替代方案-不希望被限制到一个RDBMS
本文关键字:RDBMS 一个 希望 子句 LIMIT 方案 MySql | 更新日期: 2023-09-27 18:13:20
我目前正在使用MySQL。对我来说,重要的是不要在我的c#程序中编写任何不能转换为SQL Server的SQL语句。
是否有其他的查询,我可以使将一个SELECT语句的结果限制为1个结果?
我的意图是:
UPDATE table1
SET table1.column = (SELECT somecolumn FROM table2 WHERE somestuff LIMIT 1);
如果您不关心正在设置哪个,则使用max()
或min()
:
UPDATE table1
SET table1.column = (SELECT MIN(somecolumn) FROM table2 WHERE somestuff);
这是ANSI标准SQL,应该在任何数据库中工作。
我要提醒你,MySQL和SQL Server功能之间的交集是相当少的,遗漏了一系列关于日期和字符串的功能,以及重要的查询功能,如排名函数,完整的外连接等。
除非我弄错了,否则您正在尝试编写通用应用程序,以便相同的查询将全面工作。如果这是正确的理解,你可能走错了路。除非您的所有应用程序的范围仅限于一个查询,否则您将无法做到这一点。从本质上讲,所有数据库都支持不同格式的查询,虽然它们中的大多数彼此接近,但并不意味着您必须编写通用查询。有很多很好的存储库模式实现,例如这个XML模式,但是思想与此类似。仔细阅读这些并实现其中的一个实现,而不是追逐通用命令