如果标题是:$ title = wp_title('',0); - 查询不排除:AND posttitle
<> “$标题””
如果标题是例如:$ title ='test is the best'; - 查询会排除AND posttitle
<> ''测试是最好的'“
$query = mysql_query("SELECT posttitle, posturl, siteurl, MATCH (posttitle,posturl,siteurl) AGAINST ('$title') AS score FROM interlinks WHERE MATCH (posttitle,posturl,siteurl) AGAINST ('$title') AND `posttitle` <> '$title'");
答案 0 :(得分:4)
你有一个拼写错误 - posttitle
不需要单引号,请使用:
SELECT posttitle,
posturl,
siteurl,
MATCH (posttitle,posturl,siteurl) AGAINST ('$title') AS score
FROM interlinks
WHERE MATCH (posttitle,posturl,siteurl) AGAINST ('$title')
AND posttitle <> '$lowercasetitle'
使用单引号向SQL表明它正在处理字符串,而不是列引用。因此,与变量的比较是它不等于字符串'posttitle',而不是列中的值。
在MySQL中,反引号(`)是used for escaping registered keywords:
SELECT posttitle,
posturl,
siteurl,
MATCH (posttitle,posturl,siteurl) AGAINST ('$title') AS score
FROM interlinks
WHERE MATCH (posttitle,posturl,siteurl) AGAINST ('$title')
AND `posttitle` <> '$lowercasetitle'
答案 1 :(得分:0)
通常,mysql中的字符串比较不区分大小写,因为默认情况下表使用latin1
字符集和latin1_swedish_ci
排序规则。要以区分大小写的方式对它们进行比较,请使用BINARY
这样的操作数:
WHERE MATCH (posttitle,posturl,siteurl) AGAINST ('$title')
AND BINARY posttitle != '$lowercasetitle'