由于无法理解看似简单的问题,我一直在撕扯我的头发。我正在制作一个小型商务联系人系统,使我们公司能够存储其他商业/公司以及商业联系人的联系方式(可以是自由职业者或与之前增加的公司相关联。我要做的是拥有一个搜索表单,使我能够搜索联系人的姓名或阿拉伯语和英语的企业名称。我做错了什么?
更新:如果我从每个查询部分删除阿拉伯语搜索部分,UNION查询都有效(即我删除了“OR contact_name_arabic LIKE'%”。$ queryString。“%'”以及“OR company_name_arabic LIKE” %”。$的queryString。 “%'”)
这变得更加复杂:/
表1:公司
id | company_name | company_name_arabic
-----------------------------------------------
1 | Red Arrow | السهم الأحمر
2 | White Tower | البرج الأبيض
3 | Mobilex | موبيليكس
表2:联系人
id | company_id | contact_name | contact_name_arabic
----------------------------------------------------------------
1 | 1 | Saeed Adam | سعيد آدم
2 | 1 | Andrew White | أندرو وايت
3 | 2 | Steve Rogers | ستيف روجرز
以下是MySQL声明:
$querystring = "(SELECT contact_name, contact_name_arabic
FROM CONTACTS
WHERE contact_name LIKE '%".$queryString."%'
OR contact_name_arabic LIKE '%".$queryString."%')
UNION
(SELECT company_name, company_name_arabic
FROM COMPANIES
WHERE company_name LIKE '%".$queryString."%'
OR company_name_arabic LIKE '%".$queryString."%')";
谢谢!
答案 0 :(得分:0)
$querystring = "SELECT contact_name, contact_name_arabic
FROM CONTACTS
WHERE (contact_name LIKE '%".$queryString."%'
OR contact_name_arabic LIKE '%".$queryString."%')
UNION
SELECT company_name, company_name_arabic
FROM COMPANIES
WHERE (company_name LIKE '%".$queryString."%'
OR company_name_arabic LIKE '%".$queryString."%')";
删除括号,Mysql将尝试运行(SELECT blah,这是无效的。
编辑:我添加了一些括号,尝试一下。答案 1 :(得分:0)
在mysql查询构建器中尝试此查询
(SELECT contact_name, contact_name_arabic
FROM CONTACTS
WHERE contact_name LIKE '%e%'
OR contact_name_arabic LIKE '%e%')
UNION
(SELECT company_name, company_name_arabic
FROM COMPANIES
WHERE company_name LIKE '%e%'
OR company_name_arabic LIKE '%e%')
如果它的工作检查值是变量$ queryString。
也不需要检查字段company_name_arabic
(SELECT contact_name, contact_name_arabic
FROM CONTACTS
WHERE contact_name LIKE '%e%')
UNION
(SELECT company_name, company_name_arabic
FROM COMPANIES
WHERE company_name LIKE '%e%' )