MySQL UNION没有返回任何结果


MySQL UNION returning no results whatsoever

我一直在为自己无法理解一个看似简单的问题而苦恼。我正在制作一个小型企业联系人系统,使我们公司能够存储其他企业/公司的联系方式以及业务联系人(可以是自由职业者,也可以链接到以前添加的公司。我想做的是有一个搜索表单,可以用阿拉伯语和英语搜索联系人的姓名或企业名称。我做错了什么?

更新:如果我从每个查询部分中删除阿拉伯语搜索部分,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无效。

编辑:我添加了一些括号,试试看。