Mysql 将两个稍有不同的查询合并为一个-是否使用条件变量?

Mysql 将两个稍有不同的查询合并为一个-是否使用条件变量?,mysql,Mysql,与其执行2条略有不同的sql语句来获得总共10个结果,还不如只执行一个select e、 g 挑选 A. B C 来自mytable限制3 挑选 A. B ,左(100,c) 从mytable limit 3,10签出语法 注意括号-这些括号确保最后的LIMIT子句应用于第二个查询,而不是整个结果集 除非结果中有一个数字键,可以使用IF以不同的方式格式化前n个结果,否则我认为您不会使用单个select来实现这一点。您可以选择所有十行,然后使用case语句来控制返回的值,具体取决于您定义的条件语句

与其执行2条略有不同的sql语句来获得总共10个结果,还不如只执行一个select

e、 g

挑选 A. B C 来自mytable限制3

挑选 A. B ,左(100,c) 从mytable limit 3,10签出语法

注意括号-这些括号确保最后的LIMIT子句应用于第二个查询,而不是整个结果集


除非结果中有一个数字键,可以使用IF以不同的方式格式化前n个结果,否则我认为您不会使用单个select来实现这一点。

您可以选择所有十行,然后使用case语句来控制返回的值,具体取决于您定义的条件语句。
设置@line_总计=0;

选择
a、
b、
@行总数:=@行总数+1,
(当@line_总计<4
然后c
左(100,c)端)
从测试查询限制10



“一次选择”我应该规定“数据库单程访问”。非常感谢。希望这是要求澄清的正确位置,但在您的示例中,我如何生成某种“计数器”来代替[条件],以便我知道我在第4个查询中?我将其更改为包含一个运行总数。但是,我建议使用一个条件,而不是行号,这是您希望用于替代语句的原因。使用集合时,期望数据在表中按特定顺序排列是不好的做法。
(SELECT a,b,c FROM mytable LIMIT 3)
UNION
(SELECT a,b,LEFT(100, c) FROM mytable LIMIT 3, 10);