我使用SQL UNION Operator
加入了两个SQL查询示例:
$query1 = "SELECT * FROM employees WHERE emp_first_name LIKE '%Donald%'";
$query2 = "SELECT * FROM employees WHERE emp_last_name LIKE '%George%'";
$final_query = $query1 . " UNION " . $query2
当我运行此$ final_query时,如果第一个查询的结果集不为空,它会显示两个查询的结果。如果第一个查询具有空结果集,则即使第二个查询在数据库中具有某些值,也不会显示结果。
有人可以解释问题所在。
注意:不建议我使用单个查询,我有理由使用两个查询。
答案 0 :(得分:1)
mysql> create table employees (emp_first_name varchar(255), emp_last_name varchar(255));
查询OK,0行受影响(0.01秒)
mysql> insert into employees values ('hasan','khan'),('john','doe');
查询正常,2行受影响(0.00秒)记录:2重复:0警告:0
mysql> select * from employees where emp_first_name like '%nothing%' union select * From employees where emp_last_name like '%doe%';
+----------------+---------------+
| emp_first_name | emp_last_name |
+----------------+---------------+
| john | doe |
+----------------+---------------+
1行(0.00秒)
对我来说很好。您发布的查询与您正在执行的查询不同,或者您的代码中存在问题。
答案 1 :(得分:0)
使用
union all
取代工会