我有两张桌子:
表1:
ID int auto_increment
person_name varchar
person_nickname varchar
表2:
ID int auto_increment
company_name varchar
company_nickname varchar
我想在两个字段(不是ID)中搜索两个表,仅使用一个查询。
我的搜索表单如下:
<form method="post" action="">
<input type="text" name="search" />
<button type="submit" title="Pesquisar" class="btn-search"></button>
</form>
基本上我想要的是创建一个搜索字段来搜索这两个特定的表字段。
答案 0 :(得分:0)
我不知道为什么你想要一个查询,但我会试着让你知道一个完成它的方法。
你没有指定你想要的结果类型,所以这里是你想要的结果。我想指出LIKE
的性能相当差,所以下面的代码运行得很差,db会越大。
我不确定这是正确的方法,但这样的事情应该有效:
(SELECT 'table1' AS 'table', id, person_name AS 'name', person_nickname AS 'nickname'
FROM table1
WHERE (person_name LIKE '%search%' OR person_nickname LIKE '%search%'))
UNION
(SELECT 'table2' AS 'table', id, company_name AS 'name', company_nickname AS 'nickname'
FROM table2
WHERE (company_name LIKE '%search%' OR company_nickname LIKE '%search%'))
这将返回Search=Dave
的结果,如:
有关UNION的更多信息http://dev.mysql.com/doc/refman/5.0/en/union.html