php - MySql 查询到数组到 MySql IN 查询

标签 php mysql

我试图制作一个 ID 数组并在另一个查询中使用该数组以确保第二个查询结果具有与数组中相同的 ID。

根据我其余代码的要求,我不希望使用 join 方法。

    $topartistsquery = "SELECT main_id FROM pages WHERE catnum = '201' AND top100 = 'y'";
    $result = mysql_query($topartistsquery);
    $topartistarray = array();
    while(($row =  mysql_fetch_assoc($result))) {
        $topartistarray[] = $row['main_id'];
    }
    //print_r($topartistarray);

    $eventquery = mysql_query("SELECT * FROM TNDB_CSV2 WHERE City = '".$city."' AND PCatID = '2' AND PerformerID IN ($topartistarray) AND DateTime >= CURDATE() ORDER BY DateTime LIMIT 3");

这是 $topartistarray 的输出:

Array ( [0] => 28 [1] => 1126 [2] => 47643 [3] => 2769 [4] => 41512 [5] => 1429 [6] => 163 [7] => 48418 [8] => 198 [9] => 3748 [10] => 10161 [11] => 39890 [12] => 14160 [13] => 25407 [14] => 29219 [15] => 36980 [16] => 1860 [17] => 41299 [18] => 342 [19] => 7468 [20] => 33205 [21] => 1564 [22] => 33911 [23] => 15183 [24] => 540 [25] => 974 [26] => 8358 [27] => 30678 [28] => 4804 [29] => 4266 [30] => 517 [31] => 522 [32] => 1550 [33] => 15989 [34] => 930 [35] => 3383 [36] => 26468 [37] => 5560 [38] => 1063 [39] => 2870 [40] => 4055 [41] => 24917 [42] => 46223 [43] => 973 [44] => 334 [45] => 27970 [46] => 27985 [47] => 356 [48] => 6655 [49] => 201 [50] => 1930 [51] => 1069 [52] => 38053 [53] => 397 [54] => 21713 [55] => 53725 [56] => 4941 [57] => 864 [58] => 41904 [59] => 59233 [60] => 53970 [61] => 50875 [62] => 54175 [63] => 56861 [64] => 53317 [65] => 55258 [66] => 823 [67] => 55704 [68] => 59797 [69] => 27866 [70] => 123 [71] => 59749 [72] => 1567 [73] => 34851 [74] => 3399 [75] => 58674 [76] => 59442 [77] => 60334 ) 

非常感谢任何建设性的意见。提前谢谢你

最佳答案

试试这个:

if (isset($topartistarray) and count($topartistarray) {
    $eventquery = mysql_query("SELECT * FROM TNDB_CSV2 WHERE City = '".$city."' AND PCatID = '2' AND PerformerID IN (".implode(",",$topartistarray).") AND DateTime >= CURDATE() ORDER BY DateTime LIMIT 3");
} else {
    $eventquery = false;
}

关于php - MySql 查询到数组到 MySql IN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21003447/

相关文章:

mysql - sql如何实现这个查看表

mysql - 使用 AND 代替 COMMA 时更新语句不会产生语法错误

php - 仅显示 MySQL future 的数据库记录

php - 如何在 PHP 中将密码存储为数据库中的 BCRYPT '$2a$15'

javascript - 让PHP跑在.js页面上不可行吗?

php 在浏览器中默认设置编码 iso-8859-1

mysql - Rails 和 ActiveRecord - 重构多个相同的 where 子句

php - 在数据库中记录用户 ID 而不是 IP 地址

php - 使用 PHP 在产品详细信息页面上向一个产品添加多个图像

ubuntu - 如何在ubuntu 14.04 LTS中导入sql数据库文件?