我要做的是在屏幕上显示表格中所有可能的变化。如果$search = str
, 在表格中搜索每个包含“str”的单词。我尝试了很多变体来做到这一点,但还没有成功。怎么了,我可以使用类似 "SELECT * FROM table WHERE * LIKE '[[:<:]]\"$search\"[[:>:]]' "
的东西吗? ?
$string = "SELECT * FROM table
WHERE (column1 = '[[:<:]]\"$search\"[[:>:]]')
OR (column2 = '[[:<:]]\"$search\"[[:>:]]')
OR (column3 = '[[:<:]]\"$search\"[[:>:]]')
OR (column4 = '[[:<:]]\"$search\"[[:>:]]')
OR (column6 = '[[:<:]]\"$search\"[[:>:]]')
OR (column7 = '[[:<:]]\"$search\"[[:>:]]')";
问题:找到所有包含'str'的单词
最佳答案
编辑
首先,获取数据库中包含$str
的所有列,如下所示:
"SELECT * FROM your_table WHERE UPPER(your_field) LIKE UPPER('%". $str . "%')";
之后,
解析此结果以找到单词中的 $str
。
像这样:
$explode = explode($results);
然后你使用 strpos();
和 strstr();
组合来匹配数组中的 $str
像这样的函数:
函数 getMultiPos($haystack, $needles, $sensitive=true, $offset=0){
foreach($needles 作为 $needle){
$result[$needle] = ($sensitive) ? strpos($haystack, $needle, $offset) : stripos($haystack, $needle, $offset);
}
返回 $ 结果;
}
关于php - 在mysql、php中搜索,找到所有包含 'str'的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31923663/