MySQL在第一个查询中使用1个给定的匹配参数查询整个表

时间:2015-01-26 00:54:59

标签: mysql

我在表格中有三列,如下所示:

+----------+---------+-----+
| forename | surname | ref |
+----------+---------+-----+
| John     | Smith   | 123 |
| Brenda   | Smith   | 123 |
| Paul     | Johnson | 123 |
| Greg     | Smith   | 222 |
| Suzanne  | Smith   | 222 |
| Allan    | Taylor  | 168 |
+----------+---------+-----+

网站的用户将输入他们的信息以查询该表以查看它是否存在。

到目前为止,对此的查询是......

"SELECT * FROM invites WHERE surname='$surname' AND ref='$ref'";

... $ surname和$ ref是我正在设计的网页上提交的表格值。

但是,我希望此页面上的结果列表不仅显示与这两个字段完全匹配的记录,还要显示表格中与Web表单中提供的ref匹配的任何forename和surname,因为同时提交的姓氏时间,因为表格中的参考是完全匹配。为此编写查询的最有效方法是什么?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望查询返回下面的结果,给出姓氏' Smith'并参考' 123'

| forename | surname | ref |
----------------------------
| John     | Smith   | 123 |
| Brenda   | Smith   | 123 |
| Paul     | Johnson | 123 |
----------------------------

如果是这种情况,查询将是:

select * from invites where surname = '$surname' and ref = '$ref'
union
select * from invites where ref = '$ref' and exists (select surname
from invites where surname = '$surname')