我有一个爆炸的搜索字符串,我需要查看它的任何或所有部分是否与mysql数据库表中的条目匹配。
如果用户搜索“pour house greensboro”之类的内容,则“pour house”将匹配表中的条目。但搜索也可能是“1美元啤酒倒绿色垃圾桶,或其他任何类似的东西,以任何顺序,所以我需要将搜索字符串的每个部分放在一起,检查它是否与数据库中的内容相匹配
所以,如果爆炸字符串的部分只是数字,那么我需要像这样检查它:
0 + 1 + 2 + 3 + 4
0 + 1 + 2 + 3
0 + 1 + 2
0 + 1
0
1 + 2 + 3 + 4
1 + 2 + 3
1 + 2
1
2 + 3 + 4
2 + 3
2
3 + 4
3
4个
可能有多于或少于5个部分的字符串
有没有办法轻松做到这一点?
答案 0 :(得分:2)
我想出了如何做到这一点,直到现在才考虑更新......
(for $i=0; $i < count($search_string); $i++){
$output = '';
(for $a=$i; $a < count($search_string); $a++){
$output = $output." ".$search_string[$a];
}
}
答案 1 :(得分:1)
虽然%LIKE%会起作用,但它会很慢。您可能希望使用MySQL的全文搜索功能。只需谷歌一些教程:)
答案 2 :(得分:0)
你总是可以将爆炸的字符串放在一个数组中,并在数据库中为每个数组值进行查询搜索。即select * from table data = array [$ x];
答案 3 :(得分:0)
使用'%LIKE%':
SELECT *
FROM MyTable
WHERE MyField LIKE '%SearchKeyword1%'
OR MyField LIKE '%SearchKeyword2%'
OR MyField LIKE '%SearchKeyword3%'
...