只使用一个选择,而不是执行2个稍微不同的sql语句来获得总共10个结果?
e.g
选择 一个 ,b , C 来自mytable limit 3
选择 一个 ,b ,左(100,c) 来自mytable limit 3,10
答案 0 :(得分:2)
查看UNION语法
(SELECT a,b,c FROM mytable LIMIT 3)
UNION
(SELECT a,b,LEFT(100, c) FROM mytable LIMIT 3, 10);
注意括号 - 这些确保最终的LIMIT子句适用于第二个查询,而不是整个结果集。
除非你的结果中有一个数字键,你可以用IF来格式化前n个结果,我认为你不会用一个选择来做这个。
答案 1 :(得分:0)
您可以选择所有十行,然后使用case语句来控制返回的值,具体取决于您定义的条件语句。
设为@ line_total = 0;
选择
一,
B,
@line_total:= @ line_total + 1,
(@line_total< 4时的情况
然后c
否则离开(100,c)结束)
来自test_query limit 10;
http://dev.mysql.com/doc/refman/5.0/en/case-statement.html