比如说
商品标题
字段title
秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛
商品评论
字段content
秋冬季室内穿着舒适,出外搭配棉羽背心也时尚应景。A字型裙摆式款型,可以遮挡腰腹赘肉。肩部承重力在织造设计方面值得升级改进。袖笼围度窄瘦,袖长偏短,用料与正身之阔绰相比,显寒碜。由此内里只能搭配无袖或薄型衬衫。本人159cm,135g,103cm胸围,39cm肩宽,35cm臂围,供参考。十分担心缩水率,唯恐宝贝是“一水衣”。
搜索 大码 羊毛 外套
搜索 大码 羊毛 舒适 款型
这样怎么实现呢 应该是什么样思路呢 我开始想的是取出关键词 一个词一个词的'%'.$wd.'%'?那样也实现不了 几个词同时出现的时候
回复讨论(解决方案)
MySQL 提供了正则表达式检索,为何不用一下呢?
$word = '大码 羊毛 外套';$word = preg_replace('/\s+/', '|' ,trim($word));$sql = "select * from tbl_name where concat(title,content) REGEXP '$word'";
如果条件允许的话,使用第三方的全文检索驱动,效率要高很多
同时包含不好做,因为有出现的次序问题
虽然 大码.*羊毛 是一种途径
但 羊毛.*大码 是否也是可以的呢?
MySQL 的正则比较简陋,象 php 的这种写法是不支持的
$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功
本来是为了简捷,弄复杂了就没意思了
同时包含不好做,因为有出现的次序问题
虽然 大码.*羊毛 是一种途径
但 羊毛.*大码 是否也是可以的呢?
MySQL 的正则比较简陋,象 php 的这种写法是不支持的
$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功
本来是为了简捷,弄复杂了就没意思了
板板 为什么 我加上ID排序后 查询时间就从0.3 飙升到1.8 有办法解决吗
同时包含不好做,因为有出现的次序问题
虽然 大码.*羊毛 是一种途径
但 羊毛.*大码 是否也是可以的呢?
MySQL 的正则比较简陋,象 php 的这种写法是不支持的
$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功
本来是为了简捷,弄复杂了就没意思了
我用时间排序 速度还不错 0.4秒 13条数据 为什么按ID 排序反而速度更慢 不明白
学习了学习了