【发布时间】:2016-10-09 15:16:53
【问题描述】:
comeone 可以帮助我破译查询所需的正确代码逻辑吗?我只是找不到关于这个的解决方案,或者我的搜索查询只是模糊的。哈哈。
我在没问题之前进行了查询和思考,但我刚刚意识到这些不准确。以下是我尝试过的:
从一个搜索页面,例如我们有这个变量:
$variable = !empty($_POST["variable"]) ? $_POST['variable'] : "";
查询 1
SELECT
...
...
FROM table1
LEFT JOIN table2 ON table1.column_id = table2.column_id
WHERE table2.column LIKE '%$variable%'
结果 1
- 如果
$variable没有值,则仅显示具有来自table2的相应数据的行。 - 如果
$variable有值,则显示来自table2的相应数据和匹配值的行。
查询 2
SELECT
...
...
FROM table1
LEFT JOIN table2 ON table1.column_id = table2.column_id
AND table2.column LIKE '%$variable%'
结果 2
- 如果
$variable没有值,则显示所有行。 - 如果
$variable有值,所有行仍会显示。
期望的结果
- 如果
$variable没有值,将显示所有行。 - 如果
$variable有一个值,则具有来自table2的相应数据的行 并显示匹配的值。
我已经尝试过使用IF、CASE 和LEFT OUTER JOIN (我在某处找到的东西),但仍然没有运气。我在这里忘记了什么吗?还是我做错了(这是事实)?
我有另一种方法,那就是在 PHP 中使用条件语句(这将是我的最后一个选择),但如果只有 MySQL 可以做到这一点,那就太好了。
【问题讨论】:
标签: php mysql join logic conditional