如何将两个SQL查询放在一起


How to put 2 SQL querys together?

我正试图将两个sql查询组合在一起,其中一个用于名称:

$query = "SELECT * FROM register WHERE name LIKE '" .$name ."'ORDER BY id DESC";

以及一个从获得$和$到

$sql = "SELECT * FROM register WHERE time BETWEEN ('$from') AND ('$to')";

您能建议如何将这两个查询组合起来,以显示所选名称的一个以及从和到,以及只显示所选姓名的所有结果而不显示从和到吗?

SELECT * FROM register WHERE time BETWEEN @from AND @to
UNION
SELECT * FROM register WHERE name LIKE @name ORDER BY id DESC

这可以使用UNION来完成,也可以使用OR条件:

SELECT *
FROM register
WHERE name LIKE '" .$name ."'
    OR time BETWEEN ('$from') AND ('$to')
ORDER BY id DESC;
    SELECT * FROM register WHERE name LIKE '" .$name ."' 
          OR time BETWEEN ('$from') AND ('$to')
    ORDER BY id DESC

您可以使用Union组合两个查询的结果

SELECT * FROM register WHERE name LIKE '" .$name ."'
union all
SELECT * FROM register WHERE time BETWEEN ('$from') AND ('$to')

您的问题不清楚,但仍然可以尝试类似的方法

$query = "SELECT * FROM register WHERE name LIKE '" .$name ."'
OR (time BETWEEN ('$from') AND ('$to')) ORDER BY id DESC";

这就是我所追求的,感谢我的Oracle程序员,你知道你是谁,我想我分享:

$query = "SELECT * FROM register WHERE name LIKE '" .$name ."' and time between ifnull(timestamp('$from'),time) and ifnull(timestamp('$to'),time) ORDER BY id DESC";