doutuan9357 2014-12-09 18:09 采纳率: 100%
浏览 14
已采纳

如何在mysql中使用更多单词的条件

I have a filed in database in which there is a text with a lot of words. In my front end i created a search box in which i would filter in many ways. I could write only one word or a lot of words and i should able to find the correct filed in which there are theese words. Actually i use the LIKE condition but this condition works only if i write one word or if the words are as written in the database with same order.. Is it possible do it even if the words i write are in "random order"? this is the example i use:

$sql = "SELECT * FROM table WHERE description LIKE '%".$description."%' ";
  • 写回答

1条回答 默认 最新

  • dougang6178 2014-12-09 18:33
    关注

    Use explode and implode with OR condition for each words.

    $descriptionArr = explode(" ", $description);
    if(!is_null($descriptionArr)) {
       foreach($descriptionArr as $search) {
         $descriptionQuery[] = " description LIKE '%{$search}%' ";
       }
       $condition = " WHERE " . implode(" OR ", $descriptionQuery);
    }
    $sql = "SELECT * FROM table {$condition}";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度