我有全文搜索,并在WHERE
状态正常的搜索和额外的JOIN
这样MySQL的 - 如何编写SELECT语句中正确
SELECT
customer.*,
countries.name as country
FROM customer
LEFT JOIN countries ON countries.ID = customer.country_id
WHERE customer.num = :keyword
OR customer.city = :keyword
OR customer.email = :keyword
OR MATCH (customer.company) AGAINST (:keyword)
OR countries.name = :keyword
查询与全文检索的组合一个MySQL SELECT
声明成(customer.company)
柱只要TABLE.COLUMN countries.name
是的WHERE
条件部分返回no result
。但是询问countries.name
本身是成功的。
如何正确编写的SELECT语句返回使用从上面的例子所有WHERE组件的组合成功的查询?
编辑:
在以前的版本我用这个statment
SELECT
customer.* ,
countries.name
FROM customer, countries
WHERE customer.country_id=countries.ID
AND MATCH (customer.company) AGAINST (:keyword)
UNION
SELECT
customer.*,
countries.name
FROM customer, countries
WHERE customer.country_id=countries.ID
AND countries.name=:keyword
效果很好。我只是不知道这是否是使用不同搜索(全文和普通)查询两个表的有效方式。另外,当我搜索超过2列时,代码很容易被炸毁,这是我想避免的。
任何更多的想法和帮助是值得欢迎
如果它是零,你可以把一个简单的数据我不明白你的目标,它的预期结果 – Beginner