在SELECT IN查询中使用数组?

时间:2018-02-20 08:05:40

标签: php mysql

我想知道是否可以创建一个WHERE子句有一个条件但值是数组的查询。

这是代码&数据库中的图像相关表:

enter image description here

//array in user.id_lokasi => (PL001,PL002,PL003)    
SELECT * FROM `lokasi` 
         WHERE `id_lokasi` IN (SELECT id_lokasi FROM user WHERE id_user='admin')

1 个答案:

答案 0 :(得分:2)

您的上述查询应该已经有效。关于你的问题,如果你想在WHERE中使用一组id_lokasi,你可以这样做:

SELECT * FROM `lokasi` 
     WHERE `id_lokasi` IN ('PL001', 'PL002', 'PL003');

对于您的原始查询,您可以像这样重写它以避免子查询:

SELECT l.* FROM `lokasi` l
LEFT JOIN user u ON
    u.id_lokasi = l.id_locasi AND u.id_user = 'admin'