我有一个 ID:s 数组,ID:s 的格式如下:
Bmw_330ci_89492822
所以这是一个字符串!
现在,我有这段代码可以在 MySQL 中查找该数组中的任何内容:
($solr_id_arr
就是我上面提到的数组,它包含字符串ID:s)
例如:$solr_id_arr[0]
输出 Bmw_330ci_89492822
$solr_id_arr_imploded = implode(", ", $solr_id_arr);
$query = "SELECT * FROM my_table WHERE ad_id IN ('$solr_id_arr_imploded')";
$qry_result = mysql_query($query) or die(mysql_error());
问题是这行不通,因为(我认为)每个内爆元素都应该有引号,以便 MySQL 找到匹配项。我匹配的MySQL中的字段是Varchar类型。
这是回显的$query
:
SELECT * FROM my_table WHERE ad_id IN ('Bmw_m3_cool_565440282, Bmw_m5_839493889')
你有任何其他解决方案吗,我只需要在 MySQL 中找到这个数组内的匹配项!
谢谢
最佳答案
不要用引号将整个内容括起来。它正在寻找 ad_id 在哪里 'Bmw_m3_cool_565440282, test'
使用
SELECT * FROM my_table WHERE ad_id IN ('Bmw_m3_cool_565440282', 'test')
一个快速的解决办法是改变:
//this
$solr_id_arr_imploded = implode(", ", $solr_id_arr);
//to this
$solr_id_arr_imploded = implode("', '", $solr_id_arr);
关于php - 小Php和MySql问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2184235/