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


How to use a numeric array constant array in MySQL query?

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

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

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

define("PERMANENT_EMPLOYEE","'1','2','3'");
echo 'SELECT * from employee where id IN ('.PERMANENT_EMPLOYEE.')';

我已经这样检查过了

不能将数组赋值给常量。试着这样做:

define('PERMANENT_EMPLOYEE', json_encode(array('1','2','3')));
$sql = 'SELECT * from employee where id IN(' . implode(',', json_decode(PERMANENT_EMPLOYEE, true)) . ')';

使用PHP连接函数然后编写如下查询:-

$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)";