2012-10-09 95 views
1

我正在通过多个表进行搜索。MYSQL搜索表中的空字段

SELECT DISTINCT cv.id, cv.tJobTitle, cv.tJobTitleAlt, cv.rEmployer, employee.firstName, employee.surname, cv.recentJobTitle, match (cv.title, cv.recentJobTitle, cv.targetJobTitle, cv.targetJobTitleAlt) AGAINST ('Desktop' IN BOOLEAN MODE) AS relevance 

FROM cv AS cv, employee AS employee, country AS country 

WHERE cv.showTo=1 AND cv.status=1 AND cv.employeeIDFK = employee.id AND cv.countryISO2FK='GB' 
AND cv.countryISO2FK=country.iso2 
AND match (cv.title, cv.recentJobTitle, cv.targetJobTitle, cv.targetJobTitleAlt) AGAINST ('Desktop' IN BOOLEAN MODE) 
AND cv.salaryType='1' AND cv.salaryMax <=23088 OR cv.salaryMin is NUll 
ORDER BY relevance DESC 

我有一个价格值,我在我的数据库中搜索,但我也有一个勾选框,说如果价格没有设置显示该记录。

所以,如果价格字段为空,然后仍显示在结果中。

我已经尝试了上面的内容,但是它给了我更多的100个记录,其中我的表只有2条记录。

+0

首先,你并没有在t1和t2之间定义一个连接,所以你会得到一个笛卡尔产品,我不这么认为。其次,你确定你想要0长度的非空值('')或null吗?我想你会想要搜索空 – amphibient

回答

1

假设country.iso2是一个独特的字段,我猜你是多个cv的每个员工,反之亦然。

注意:这是避免在INNER JOIN中使用comman符号的好建议。此外,这只会在你的field3真的是空的而不是NULL的情况下工作。

+0

我已经添加了我的查询 – user1509201

+1

我已经把AND filed3 =''但它给了我超过100条记录 – user1509201