作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的表Companies
列cName
中的数据
CK'Wang Pte Ltd
Chong Wang Pte Ltd
CK'Studio Pte Ltd
这是我的查询
$query = mysql_query("SELECT cName FROM Companies WHERE MATCH cName AGAINST ('+CK\'Wang Pte Ltd' IN BOOLEAN MODE)");
$result = mysql_num_rows($query);
$结果显示 2。我怎样才能只匹配 1 (CK'Wang Pte Ltd
) 而不是 2
最佳答案
如果您希望所有术语在 bool 模式下匹配,则需要在每个术语前面添加 +。查询的解释方式,CK 是强制性的,所有其他术语都是可选的,并且将主要影响结果的排名。
如果您需要根据用户请求构建查询并匹配所有术语,则需要先对其进行转换。
function fulltext_match_all($query)
{
$final = array();
foreach (array_filter(preg_split('/[\s\'-]+/', $query)) as $word) {
$final[] = "+$word";
}
$query = implode(' ', $final);
}
您的最终查询将如下所示:
SELECT cName FROM Companies WHERE MATCH cName AGAINST ('+CK +Wang +Pte +Ltd' IN BOOLEAN MODE)
关于PHP 从 MySQL 数据库中搜索 FULLTEXT 转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778245/
我通过使用窗体设计器编辑 .rc 文件为 MFC 类创建了对话框窗体,如下所示, 它被视为LTEXT。我想使用 WM_CTLCOLORSTATIC 消息 更改该文本的颜色。我使用子类如下, HWND
我是一名优秀的程序员,十分优秀!