如何从mysql数据库表中仅获取php数组的匹配项[重复]

Posted

技术标签:

【中文标题】如何从mysql数据库表中仅获取php数组的匹配项[重复]【英文标题】:How to fetch only matched items of a php array from mysql database table [duplicate] 【发布时间】:2019-01-08 07:14:36 【问题描述】:

这是我在 php 中的数组:$list = array('dog', 'tiger', 'lion', 'elephant')

表名: 关注列表 数据库: assignment

比较 $listwatchlist 表后,它应该只打印匹配的项目。 因此,此输出将是: 狗 老虎

是否有任何 mysql 查询来获取此输出。我在mysql方面很弱。提前谢谢你。

【问题讨论】:

SELECT * FROM watchlist WHERE name IN ('dog', 'tiger', 'lion', 'elephant')。当然你会想要绑定值和类似的东西,但这就是它的要点。 SQL 有 IN 运算符...name IN('dog', 'tiger', 'lion', 'elephant') 将给出您需要的结果.. 如果您还需要/想要强制执行您需要添加的顺序 ORDER BY FIELD(name, 'dog', 'tiger', 'lion', 'elephant') 这是 MySQL 独有的功能。 【参考方案1】:

你可以这样做:

$query = "SELECT * FROM `watchlist` WHERE `assignment` IN('".implode("','",$list)."')";

注意:确保所有外部输入都经过清理。

【讨论】:

我觉得下一个问题来了..如何清理..***旨在解决问题而不是产生新问题。

以上是关于如何从mysql数据库表中仅获取php数组的匹配项[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 es6 中仅比较和过滤两个对象数组中不匹配的数组

从mysql表中获取行到php数组并将其传递给ajax

如何从 MySQL 的 DATETIME 字段中仅选择日期?

如何在数组php中仅获取非空元素计数

Laravel Eloquent:如何从连接表中仅获取某些列

如何从多次包含此值的表中仅获取 1 个结果?