这是我的情况:我需要选择user_id = x或y或z的所有消息。
我在PHP中有一个数组:
users = ('1', '2', '3')
无论如何都要选择所有的消息,其中user_id =其中一个值而没有大量查询:
user_id = '1' OR user_id = '2' OR user_id = '3?'
(我需要接收100多人的消息,因此效率低下)
由于
答案 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
是另一种选择。