我正试图将两个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";