php循环全部导致下一个mysql查询

时间:2019-03-19 11:48:26

标签: php mysql

我有一个小问题。我使用两个mysql查询来获取数据。 首先,我想从组中获取ID

$sqlGoups = "SELECT * from `groups` WHERE `Date`='$TodayDate' ";
$result = $conn->query($sqlGoups);
if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
    $IDgroups = $row["ID"]; 

这样,我将获得这些ID,例如5、7、12、15、22

我想将它们全部放在下一个mysql查询中:

 $sqlNext = "SELECT * FROM `orders` WHERE ID = '$IDgroups' ORDER BY `ID` ASC ";
$result = $conn->query($sqlNext);

执行此操作时,仅获得第一个ID(5)的结果。我想要每个人

我无法使用INNER JOIN表,因为我在下一个查询中使用了该表。

我尝试了foreach循环,但没有效果。

2 个答案:

答案 0 :(得分:0)

尝试此代码

SELECT * FROM `orders` 
WHERE ID  REGEXP CONCAT('(^|,)(', REPLACE('$IDgroups', ',', '|'), ')(,|$)') 
ORDER BY `ID` ASC 

答案 1 :(得分:0)

就像@Elanochecer所说的那样,最好的选择应该是JOIN语句,但是如果您希望通过自己的路线,则可以使用IN并将ID作为逗号分隔的字符串提供,您的查询应类似于以下查询:

... $sqlNext = "SELECT * FROM orders WHERE ID IN ('$IDgroups') ORDER BY ID ASC "; ...

还要确认$ IDgroups是否采用1,2,3,4格式

如果您提供了架构,我可以为您提供一个可行的JOIN语句,最好您可以使用架构创建一个仓库