可能重复:
使用数组的MySQL查询将数组
传递给mysql
我在PHP中有一个数组:
$array = array(1, 4, 5, 7);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我有一个不同值的数组,但我想编写一个MYSQL语句来检查它id是否等于数组中的任何值.例如,如果一行的id值为1,则它将返回该行,对于4,5和7也是如此.由于程序的性质,数组的长度可能会有所不同,因此这就是问题所在.我可以这样做:
SELECT ...
FROM ...
WHERE id = '$array'
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?
如果我不清楚,请向我询问更多信息.
ale*_*lex 106
使用IN.
$sql = 'SELECT *
FROM `table`
WHERE `id` IN (' . implode(',', array_map('intval', $array)) . ')';
Run Code Online (Sandbox Code Playgroud)
Nat*_*lor 30
你要找的是IN()声明.这将测试给定字段是否包含1个或更多值中的任何一个.
SELECT * FROM `Table` WHERE `id` IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
您可以使用简单的循环将$array变量转换为正确的格式.如果您的数组值来自前端,请务必注意SQL注入.
Ben*_*n D 16
只需使用ID IN ()语法:
$sql = "SELECT FROM `table` WHERE `ID` IN (".implode(',',$array).")";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166520 次 |
| 最近记录: |