如何在MySQL查询中使用数值数组常量数组?

时间:2016-09-06 09:09:56

标签: php mysql

常数ex:define('PERMANENT_EMPLOYEE',array('1,'2','3'));

SELECT * from employee where id IN('PERMANENT_EMPLOYEE');

以上选择不起作用。

3 个答案:

答案 0 :(得分:0)

您无法将数组指定为常量。尝试这样做:

define('PERMANENT_EMPLOYEE', json_encode(array('1','2','3')));

$sql = 'SELECT * from employee where id IN(' . implode(',', json_decode(PERMANENT_EMPLOYEE, true)) . ')';

答案 1 :(得分:0)

你需要传递一个字符串,因为你现在正在使用数组

define("PERMANENT_EMPLOYEE","'1','2','3'");

echo 'SELECT * from employee where id IN ('.PERMANENT_EMPLOYEE.')';

我已经用这种方式检查了

答案 2 :(得分:0)

使用PHP join函数,然后按如下所示编写查询: -

$ids = join(',',[1,2,3]);
$sql = "SELECT * FROM employee WHERE id IN ($ids)";

如果你想通过常数使用数组,那么你应该使用serialize

define('PERMANENT_EMPLOYEE',serialize(array(1,2,3)));
$ids = join(',',unserialize(PERMANENT_EMPLOYEE)); 
$sql = "SELECT * FROM employee WHERE id IN ($ids)";