我一直在为自己无法理解一个看似简单的问题而苦恼。我正在制作一个小型企业联系人系统,使我们公司能够存储其他企业/公司的联系方式以及业务联系人(可以是自由职业者,也可以链接到以前添加的公司。我想做的是有一个搜索表单,可以用阿拉伯语和英语搜索联系人的姓名或企业名称。我做错了什么?
更新:如果我从每个查询部分中删除阿拉伯语搜索部分,UNION查询就会工作(即,我删除了"OR contact_name_Arabic LIKE'%".$queryString."%'"以及"OR company_name_arabicLIKE'%".$Query String."%")
这变得越来越复杂:/
表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."%')";
谢谢!
在您的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%' )
$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无效。
编辑:我添加了一些括号,试试看。