我尝试创建一个SQL查询,根据数组包含的内容从我的数据库中获取数据。
示例:
我的数组包含1, 2, 3
,然后查询应为SELECT * FROM v WHERE category='1' OR category='2' OR category='3'
。
有谁知道实现这个目标的方法?
欢迎任何提示。
更新
使用MySQL作为数据库。
答案 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