Php Mysql根据字段获取三组行

Php Mysql根据字段获取三组行,php,mysql,Php,Mysql,我想在我的查询中有三组行,每组100行。每个集合都具有不同的数据值。所以像这样: $result = mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100") or die(mysql_error()); $result .= mysql_query("SELECT * FROM acti

我想在我的查询中有三组行,每组100行。每个集合都具有不同的数据值。所以像这样:

$result = mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100") or die(mysql_error());
$result .= mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100") or die(mysql_error());
$result .= mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100") or die(mysql_error());
如何在一次查询中获得结果

谢谢。

使用UNION:

使用联合体:

使用联合体

使用联合体

你可以用它来做这项工作

(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100) 
UNION
(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100)
UNION
(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100)
你可以用它来做这项工作

(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100) 
UNION
(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100)
UNION
(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100)
像工会一样尝试

SELECT * FROM tableA UNION SELECT * FROM tableB UNION SELECT * FROM tableC
如果您也希望允许复制,那么请尝试像UNION一样进行联合

像工会一样尝试

SELECT * FROM tableA UNION SELECT * FROM tableB UNION SELECT * FROM tableC
如果您也希望允许复制,那么请尝试像UNION一样进行联合

一种方法是使用联合

更多选项。

一种方法是使用UNION


更多选项。

appid='$appid'和电子邮件!=和用户名!=按计数顺序排列为'24'、'23'、'22'的数据说明限制为100或尝试联合。嗯,每组数据中的限制不会为100。更多提示:!=是一个特定于MySQL的操作符。为了便于携带,请使用相同的;您也不需要引用数字。请从操作中选择*,其中appid=“$appid”和电子邮件!=和用户名!=按计数顺序排列为'24'、'23'、'22'的数据说明限制为100或尝试联合。嗯,每组数据中的限制不会为100。更多提示:!=是一个特定于MySQL的操作符。为了便于携带,请使用相同的;您也不需要引用数字。谢谢。如何在每次选择中限制100?每次选择后输入限制100时,我都会出错。但是当我在查询结束时抛出时,它工作得很好。@casperlynge将每个查询部分用括号括起来:选择。。。限制100个联合选择…谢谢。如何在每次选择中限制100?每次选择后输入限制100时,我都会出错。但是当我在查询结束时抛出时,它工作得很好。@casperlynge将每个查询部分用括号括起来:选择。。。限制100联合选择…这是我想要的,但它给了我一个错误,因为每个联合前都有一个订单BY和限制100。请再次检查。我编辑了我的答案,我认为如果不给我错误就可以了这是我想要的,但它给了我一个错误,因为每个工会前都有一个订单,限制为100。请再次检查。我编辑了我的答案。如果没有给出错误,我认为可以
SELECT * FROM tableA UNION ALL SELECT * FROM tableB UNION ALL SELECT * FROM tableC
$result = mysql_query("
  (SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100)
  UNION
  (SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100)
  UNION
  (SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100)
");