我的数据库中有这些表格:
表A:
id | haystack
-------------
1 | 682,401
2 | 351
表B:
id | needle
-------------
1 | 352
2 | 682
3 | 978
我想要做的就是检查表A中的干草堆是否包含表B中的任何针。我在PHP中执行了此代码:
$res_A = mysql_query('SELECT * FROM table_A');
while($row_A = mysql_fetch_array($res_A)){
$res_B = mysql_query('SELECT * FROM table_B');
while($row_B = mysql_fetch_array($res_A)){
if(strlen(strstr($row_A['haystack'], $row_B['needle']) > 0)){
echo 'I found this needle: '.$row_B['needle'].' in this haystack: '.$row_A['haystack'].'<br />';
}
}
}
但是,它不起作用。我试着整天想出来,但没有机会。我需要提一下干草堆和针柱是变形金刚。
你能帮我解决这个问题吗? 提前谢谢!
答案 0 :(得分:1)
注意strlen(strstr($row_A['haystack'], $row_B['needle']) > 0)
尝试:if(strlen(strstr($row_A['haystack'], $row_B['needle'])) > 0)
您在> 0
strlen
答案 1 :(得分:1)
为什么不把它全部放在SQL服务器上?更容易,更快..
SELECT * from hay, needle WHERE hay.haystack LIKE CONCAT('%',needle.needle,'%');
答案 2 :(得分:0)
试试这个:
$res_A = mysql_query('SELECT haystack FROM table_A');
while($row_A = mysql_fetch_array($res_A)){
$res_B = mysql_query("SELECT needle FROM table_B WHERE needle = '" . $row_A['haystack'] . "'");
if(mysql_num_rows($res_B) > 0) {
echo 'I found this needle: '.$row_B['needle'].' in this haystack: '.$row_A['haystack'].'<br />';
}
}