再查询要快吧。
如果真是可以自己抽象出来所有符合的模糊对象的话,我看快赶上人工智能了,计算量不小。现阶段应该还用不到。用到了,我们也做不出来。
不知道对你有用吗,第二次回答问题。
O(∩_∩)O哈哈~
原谅我的看错.楼上的朋友.不过就算你在头文件设了utf-8.就能保证数据库服务器->服务器->客户端都不乱码吗?Mysql我就不清楚了. mssql 就不一定啦. 如果是mssql我建议必须用函数编码.
另我感到怀疑的是楼上的同学 居 然 用 str_split() 函 数 去 拆 分 中 文 字 符 ....我没试过结果.如果结果可行.那使用楼上的同学的吧.毕竟比较简单.我这种比较保险.
瞧俺老孙的法宝.........BINGO 开始
html 页面
<input type=“text”>
<script>var url = "fuck.php?fuck=" + escape(document.getElementsByTagName("input")[0].value)
//传递和跳转的window函数我就不写了喔
</script>
php 页面
// php 解码函数
function unescape($str) {
$str = rawurldecode($str)
preg_match_all("/%u.{4}|.{4}|d+|.+/U",$str,$r)
$ar = $r[0]
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] = mb_convert_encoding(pack("H4",substr($v,-4)),"gb2312","UCS-2")
elseif(substr($v,0,3) == "")
$ar[$k] = mb_convert_encoding(pack("H4",substr($v,3,-1)),"gb2312","UCS-2")
elseif(substr($v,0,2) == "") {
$ar[$k] = mb_convert_encoding(pack("H4",substr($v,2,-1)),"gb2312","UCS-2")
}
}
return join("",$ar)
}
// 这里法宝开始 完美解决每个汉字拆分出来
$arr = explode("u",$_GET["fuck"])//是因为escape编码后每个汉字的开头都是u
$shit = ""
foreach($arr as $value)
{
$value = unescape($value)// 网上找到的php 解码函数
$shit .= "%".$value."%"//字符串拼接好了可供查询了呵呵
}
$sql = "select * from table where con like ‘$shit’"
//或者 $shit = "'".$shit."'"然后$sql = "select * from table where con like“.$shit.
xxsql_query($sql)// 大功告成! 后面的echo 自己喜欢怎样格式输出就输出呗.
mysql支持自然语言的全文搜索对于字段的要求:
只能是CHAR, VARCHAR, 或 TEXT 类型的字段
表类型是MyISAM
在表建好,并导入数据后,建立一个fulltext index(索引)
用法:
select 字段1,字段2,字段3, MATCH(要匹配的字段名) AGAINST('keyword') as score from table having score>0
命中的每一行都会有个分数,分数越大表示结果越接近keyword,分数越低的就是越模糊的结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)