从数组创建SQL

时间:2016-06-24 13:38:04

标签: php mysql sql

我尝试创建一个SQL查询,根据数组包含的内容从我的数据库中获取数据。

示例:

我的数组包含1, 2, 3,然后查询应为SELECT * FROM v WHERE category='1' OR category='2' OR category='3'

有谁知道实现这个目标的方法?

欢迎任何提示。

更新

使用MySQL作为数据库。

4 个答案:

答案 0 :(得分:4)

您可以使用implode函数和IN子句作为

$sql="SELECT * FROM v WHERE category IN ('".implode("','", $your_array)."')";

答案 1 :(得分:2)

我会看看https://stackoverflow.com/a/14767572/755949,它使用占位符和PDO将参数添加到查询中。按照萨蒂的回答,你可能会冒险使用SQL注入。

答案 2 :(得分:0)

SELECT 
    house_name, house_info, stop_name, stop_info, 
    SQRT(POWER(house_latitude - stop_latitude, 2) + POWER(house_longitude - stop_longitude, 2)) AS Distance
FROM 
    House, Stop
WHERE 
    SQRT(POWER(house_latitude - stop_latitude, 2) + POWER(house_longitude - stop_longitude, 2)) < 0.006

答案 3 :(得分:0)

您也可以尝试:

$sql = "SELECT * FROM v WHERE ( FIND_IN_SET(".implode("','", $your_array).", category) ) ";

有关FIND_IN_SET的更多信息:http://www.w3resource.com/mysql/string-functions/mysql-find_in_set-function.php