MySQL中的列='x,y,z'

时间:2012-01-30 15:50:05

标签: php mysql

这是我的情况:我需要选择user_id = x或y或z的所有消息。

我在PHP中有一个数组:

users = ('1', '2', '3')

无论如何都要选择所有的消息,其中user_id =其中一个值而没有大量查询:

user_id = '1' OR user_id = '2' OR user_id = '3?'

(我需要接收100多人的消息,因此效率低下)

由于

5 个答案:

答案 0 :(得分:8)

是的!您可以使用IN运算符:

user_id IN ('1', '2', '3')

如果你的数组总是安全且包含元素,你可以这样做:

"user_id IN ('" . implode("', '", $users) . "')"

在PHP中也是如此。

答案 1 :(得分:8)

使用IN条款。

SELECT *
    FROM YourTable
    WHERE user_id IN ('1','2','3')

答案 2 :(得分:6)

这很容易做到:

$query = "SELECT * FROM table_name WHERE user_id IN('1','2','3')";

由于您的值在数组中,您可以使用:

$users = array('1', '2', '3');
$user_id = "'" . implode("', '", $users ) . "'";
$query = "SELECT * FROM table_name WHERE user_id IN($user_id)";

希望这有帮助。

答案 3 :(得分:2)

您可能不喜欢IN个关键字。相反,您可以使用这样的正则表达式:

select * from your_table where user_id regexp '1|2|3'

答案 4 :(得分:1)

user_id >= 1 AND <= 3 

是另一种选择。