我有一些关键字,比如“some-or-other”,其中的连字符在我的mysql数据库搜索中很重要。我目前使用全文功能。如何在搜索查询中允许使用连字符搜索全文搜索
有没有办法逃避连字符? 我知道一个选项是在myisam/ftdefs.h文件中注释掉#define HYPHEN_IS_DELIM
,但不幸的是我的主机不允许这样做。那里有另外一个选择吗?
编辑11年3月8日 下面的代码我现在所拥有的:
$search_input = $_GET['search_input'];
$keyword_safe = mysql_real_escape_string($search_input);
$keyword_safe_fix = "*'\"" . $keyword_safe . "\"'*";
$sql = "
SELECT *,
MATCH(coln1, coln2, coln3) AGAINST('$keyword_safe_fix') AS score
FROM table_name
WHERE MATCH(coln1, coln2, coln3) AGAINST('$keyword_safe_fix')
ORDER BY score DESC
";
我实际上注意到了你提到的第一个解决方案。但是我无法复制它。你能给我一个这样的查询的例子吗? – Jay 2011-03-04 11:04:19
当然,请尝试SELECT * FROM your_table_name WHERE MATCH(your_table_column_name)AGAINST(''SQL-MySQL''IN BOOLEAN MODE);在这里查看摩尔信息http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html – 2011-03-04 11:53:57
很棒!像魅力一样工作!非常感谢你:) – Jay 2011-03-04 12:18:33