MySQL where NOT IN 名称数组?

Posted

技术标签:

【中文标题】MySQL where NOT IN 名称数组?【英文标题】:MySQL where NOT IN name array? 【发布时间】:2012-08-27 03:45:32 【问题描述】:

我想排除这些具有以下名称的专辑:

$ban_album_names = array('Wall', 'Profile', 'Cover', 'Instagram');

如何正确书写,

SELECT * FROM albums WHERE name NOT IN ???

如何让它在数组中查找,如果名称匹配它应该!= 行

【问题讨论】:

【参考方案1】:

试试这个:

$sql = "SELECT *
    FROM albums
    WHERE name NOT IN ( '" . implode( "', '" , $ban_album_names ) . "' )";

【讨论】:

对于给定的名称列表,字符串中没有任何嵌入的引号;如果有,您需要创建$banned 列表调用适当的引用函数来防止SQL Injection。 这是一个糟糕的答案,会导致一堆不必要的查询。往下看。 如果你有一个 ID 的数组,整数呢? 此参数顺序在撰写本文时可能是合适的。但是,现在遇到它的人请注意,记录的顺序首先是“胶水”,然后是数组。从技术上讲,它们仍然可以工作,但这不是记录的顺序。【参考方案2】:

mysql 代码是

SELECT * FROM albums WHERE name NOT IN ('Wall', 'Profile', 'Cover', 'Instagram')

【讨论】:

以上是关于MySQL where NOT IN 名称数组?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL where 子句

mysql 的where查询子句

EasyClick 之 MySQL where条件查询

使用 where 语句批量更新 mysql

如何在 WHERE 子句(MySQL)中使用 VIEW?

PHP MySQL Where 子句