将数组插入SQL查询

时间:2014-05-05 07:12:40

标签: sql arrays

我正在运行以下SQL查询...

$user = 'salesrep_83';
SELECT COUNT(*) AS COUNT
FROM my_table_1 a
JOIN my_table_2 b
ON b.id       = a.sale_id
WHERE a.value = '$user'
AND b.date_posted LIKE '05-05-2014'

这正常工作,并向我显示今天日期指定$ user的所有销售额。我想更改此信息,以便向我显示所有销售代表的今日销售情况。我可以使用所有用户ID生成和数组,但不确定如何将其插入查询

任何人都有一个例子吗?

2 个答案:

答案 0 :(得分:2)

您只需使用in运算符。

SELECT COUNT(*) AS count 
FROM my_table_1 a JOIN my_table_2 b ON b.id = a.sale_id 
WHERE a.value in ('salesrep_82','salesrep_83')
AND b.date_posted = '05-05-2014'

更新(你是对的Rahul):

如果没有LIKE

之类的通配符,则使用%毫无意义
b.date_posted LIKE '05-05-2014'

使用

b.date_posted = '05-05-2014'

代替。

答案 1 :(得分:0)

如果您希望合并所有用户的聚合,只需使用in子句:

SELECT COUNT(*) AS COUNT
FROM my_table_1 a
JOIN my_table_2 b
ON b.id       = a.sale_id
WHERE a.value in ('$user1', '$user2')
AND b.date_posted LIKE '05-05-2014'

如果您想要按用户列出销售清单,则可以将ingroup by合并:

SELECT value, COUNT(*) AS COUNT
FROM my_table_1 a
JOIN my_table_2 b
ON b.id       = a.sale_id
WHERE a.value in ('$user1', '$user2')
AND b.date_posted LIKE '05-05-2014'
GROUP BY value

请注意,根据您运行此查询的位置,由于SQL injection等问题而将字符串值分配给它通常不是一个好习惯。