【发布时间】:2009-07-02 16:15:39
【问题描述】:
与其执行2个略有不同的sql语句得到总共10个结果,可以只用一个select来完成吗?
例如
选择 一个 , b , C 从 mytable 限制 3
选择 一个 , b , 左 (100, c ) 从 mytable 限制 3, 10
【问题讨论】:
标签: mysql
与其执行2个略有不同的sql语句得到总共10个结果,可以只用一个select来完成吗?
例如
选择 一个 , b , C 从 mytable 限制 3
选择 一个 , b , 左 (100, c ) 从 mytable 限制 3, 10
【问题讨论】:
标签: mysql
查看UNION 语法
(SELECT a,b,c FROM mytable LIMIT 3)
UNION
(SELECT a,b,LEFT(100, c) FROM mytable LIMIT 3, 10);
注意括号 - 它们确保最终的 LIMIT 子句适用于第二个查询,而不是整个结果集。
除非您在结果中有一个数字键,可以让您使用 IF 来以不同方式格式化前 n 个结果,否则我认为您不会通过一次选择来执行此操作。
【讨论】:
您可以选择所有十行,然后根据您定义的条件语句使用 case 语句来控制返回的值。
设置@line_total=0;
选择
一个,
乙,
@line_total := @line_total + 1,
(@line_total 时的情况
然后c
else left(100, c) end)
从 test_query 限制 10;
http://dev.mysql.com/doc/refman/5.0/en/case-statement.html
【讨论】: